Last active
March 2, 2021 18:32
-
-
Save timoshenkoav/374f00b78a8ea6fa1223305e8eeb53e4 to your computer and use it in GitHub Desktop.
WeekReferenceTest
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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