应用程序被Android清除

应用程序被Android清除,android,android-layout,android-manifest,Android,Android Layout,Android Manifest,我启动我的Android应用程序,它会在第一个屏幕上初始化一些状态。该应用程序有很多屏幕,在随机浏览了一些屏幕后,我使用“主页键”最小化该应用程序。现在,在从手机上运行了一些其他应用程序后,操作系统决定需要释放我的应用程序,并因此终止它 现在,当我再次单击应用程序图标时,操作系统会记住历史记录并尝试返回到我最小化应用程序的屏幕。但是,问题是,由于操作系统在某个时候清除了我的应用程序,我的所有状态都将丢失,屏幕可能没有任何相关性 我如何处理这个问题?如果在历史记录中的活动之前已被清除,那么如何确保

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

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


我如何处理这个问题?如果在历史记录中的活动之前已被清除,那么如何确保操作系统调用启动器屏幕?

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

每次你的一项活动放在后台时,都会被调用。这允许您将应用程序的状态保存到此方法中提供的捆绑包中。如果你的应用程序继续运行,onCreate将使用完全相同的捆绑包调用。现在,您可以以用户离开应用程序时的状态重新构建应用程序


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

从您上面关于初始化singleton类的评论中,我也遇到了与您类似的情况。由于我无法避免,我所做的就是利用课堂。每当操作系统决定清除你的应用程序时,下次启动应用程序时,
应用程序类
上的
onCreate
。重写
onCreate
方法以初始化singleton类,而不是在launcher屏幕中执行同样的操作

代码片段如下所示

public class CellApplication extends Application {

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

我的情况不是那么简单。我在launcher屏幕上实例化了一个巨大的singleton类,整个应用程序都在使用它。现在,当我的应用程序从一个随机屏幕而不是启动屏幕启动时,这个单例并没有初始化。事情就这么一波三折了。也许你得考虑一下这种单身的做法;)如果singleton不可用,则可以完成onCreate方法中的每个活动。这会让用户回到launcher屏幕,因为你创建的活动将被关闭,这会让它变得很麻烦。还有更多的纠结,这使得它实际上是不可能的。你能给我看一个如何做到这一点的片段吗?文件本身似乎不够充分。