我无法保存我的应用程序的状态/单例。
当应用程序启动时,会显示一个加载屏幕(活动),并使用来自 web 服务调用的值初始化一个单例(请注意,网络访问不能在主线程上运行)。
创建单例后,我打开我的主要活动。请注意,构建布局需要来自单例的值。
现在假设应用程序进入后台并在那里被杀死(例如,因为内存不足)。当应用程序被杀死时,我的单例实例被删除。当我切换回我的应用程序时,它会尝试重新创建主要活动。正如我之前提到的,构建布局需要来自单例的值,因此这会导致 NullPointerException(当我尝试访问单例的成员时,因为它不再存在)。
我可以以某种方式告诉android在应用程序被杀死后开始第一个加载活动吗?如果我可以在重新创建布局之前刷新单例,那就太好了,但这似乎是一个问题,因为网络调用不能在主线程上,因此在刷新完成之前不会阻塞。我假设我可以在所有活动 onStop 中保存单例并在 onCreate 方法中重新创建它,但这似乎有点太不可预测并且可能会导致状态不一致......
另一种方法可能是始终在 onStop 上完成我的活动,但这会导致丢失用户最后在哪个选项卡上等等,即使应用程序没有被杀死,所以这不是一个好的选择。
关于如何解决这个问题的任何想法?