在我的应用程序中,我需要保留对某些 Activity 的引用,以便无论我当前正在破坏哪个 Activity ,我都可以在异步事件(网络结果)上调用它们的方法之一。 假设 Activity 在后台,系统需要资源并破坏我的 Activity 。
首先,我的 Activity 实例是否已从堆中完全取消分配?
我引用了该 Activity 是否会影响天气,系统是否会破坏我的 Activity ?
如果 Activity 从堆中完全删除,现在我有一个 Activity 实例的非空引用,它指向内存中未分配的位置,这看起来非常危险,所以我想我应该检查一下我的对 Activity 的引用指向一个有效的实例;我该怎么做?
最佳答案
I need to keep a reference to certain activities, so that I can invoke one of their methods on an asynchronous event (web result) no matter which activity I'm currently ruining
请使用事件总线(LocalBroadcastManager
、greenrobot 的 EventBus、Square 的 Otto 等)。请不要“保留对某些 Activity 的引用”。
Lets say the activity is in the background, and the system needs resources and destroys my activity.
这永远不会发生。 Android 因内存不足而终止进程;它不会因低内存条件而破坏个人 Activity 。
关于java - 在 Android 操作系统销毁 Activity 后,对 Activity 的引用会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27160852/