Skip to content

Instantly share code, notes, and snippets.

@timoshenkoav
Last active March 2, 2021 18:32
Show Gist options
  • Save timoshenkoav/374f00b78a8ea6fa1223305e8eeb53e4 to your computer and use it in GitHub Desktop.
Save timoshenkoav/374f00b78a8ea6fa1223305e8eeb53e4 to your computer and use it in GitHub Desktop.
WeekReferenceTest
public class WeakReferenceSample {
public WeakReferenceSample(Listener listenerWeakReference) {
this.listenerWeakReference = new WeakReference<>(listenerWeakReference);
}
interface Listener {
void onDone();
}
private final WeakReference<Listener> listenerWeakReference;
void perform() {
new Thread(new Runnable() {
@Override
public void run() {
final Listener listener = listenerWeakReference.get();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (listener != null) {
listener.onDone();
}
}
}).start();
}
}
public class WeakSampleActivity extends Activity implements WeakReferenceSample.Listener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WeakReferenceSample weakReferenceSample1 = new WeakReferenceSample(this);
weakReferenceSample1.perform();
WeakReferenceSample weakReferenceSample2 = new WeakReferenceSample(new WeakReferenceSample.Listener() {
@Override
public void onDone() {
Log.d("WeakSample","Done test 2");
}
});
weakReferenceSample2.perform();
}
@Override
public void onDone() {
Log.d("WeakSample","Done test 1");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment