应用程序被Android清除

时间:2011-01-20 07:53:03

标签: android android-layout android-manifest

我启动了我的Android应用,它会在第一个屏幕上初始化某个状态。该应用程序有很多屏幕,在随机浏览某些屏幕后,我使用“主页键”最小化应用程序。现在,在通过手机运行其他一些应用程序之后,操作系统决定它需要释放我的应用程序并因此将其杀死。

现在,当我再次点击应用程序图标时,操作系统会记住历史记录并尝试返回到我最小化应用程序的屏幕。但是,问题是因为操作系统在某个时候清除了我的应用程序,所有状态都丢失了,屏幕可能没有任何相关性。

我该如何解决这个问题?我如何确保操作系统调用启动器屏幕(如果之前已清除过,而不是历史记录中的活动)?

2 个答案:

答案 0 :(得分:3)

从上面关于单例类初始化的评论中我也遇到了类似于你的情况。由于我无法避免,我所做的是使用了Application类。每当操作系统决定清除您的应用时,下次启动应用时,onCreate上的Application class都会被调用。覆盖onCreate方法以初始化单例类,而不是在启动器屏幕中执行相同操作

代码段如下

public class CellApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // Do your singleton class initialization here
    }
}

答案 1 :(得分:2)

您无法确保操作系统调用启动器屏幕。解决此问题的最佳方法是保存屏幕状态。

每当您的某个活动被置于后台onSaveInstanceState时,就会调用它。这允许您将应用程序的状态保存到此方法中提供的包中。如果您的应用程序恢复onCreate将使用完全相同的捆绑包进行调用。您现在可以在用户离开的状态下重建应用程序。

检查onCreate中的bundle是否为null。如果为null,则如果不从捆绑包重建状态,则您的活动是新的。