我正在使用 Android 注释进行 Android 开发。我有一个单例可观察对象,我想为其添加活动作为观察者。类似如下:

@EActivity(R.layout.myActivity)
public class MyActivity extends SherlockActivity implements Observer { 

    @Bean //has singleton scope
    protected Observerable o;

    @Override
    public void onCreate() {
        o.registerObserver(this);
    }

    @Override
    public void onDestroy() {
        o.unregisterObserver(this);
    }

    //more code

我的问题在于 on destroy 方法。android是否会在停止或暂停状态下杀死activity 没有 呼叫 onDestroy()?如果我的情况是这样的话 Observerable 可能会保留对系统不再使用的活动的实时引用,这不好。或者事实并非如此?如果是的话,我的假设是在我的注册观察者列表中保留对我所有活动的弱引用,以便它们可以自动取消注册。这是一个好的解决方案还是不需要?

有帮助吗?

解决方案

操作系统可以在不调用 onDestroy 的情况下终止您的进程,但否则您可以依赖 onDestroy 被调用。因此,只要您的 Observable 与 Activity 处于同一进程中,就可以了。

其他提示

根据活动的生命周期 安卓文档, ,如果必须启动其他应用程序并且系统没有足够的内存,则可能会发生这种情况。

编辑:嗯,看来这种情况下系统还是会调用这个方法。我不太确定工作流程了......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top