在我们的应用程序中,我们几乎完全依赖于来自我们的Web服务的数据。在第一次启动时,我们启动LoginActivity
,我们处理登录并检索此数据,然后继续进入MainActivity
,其中开始使用消耗数据的所有UI。
我们将所有这些数据存储在static
数据模型中,它可以很好地满足我们的需求,但是有些实例可以解决应用程序(由于内存限制)而{{{ 1}}保留其状态。因此,如果我去启动其他几个应用程序(导致这种情况发生)然后重新启动应用程序,它会尝试恢复Activity
(依赖于服务中的数据)并因应用程序的事实而崩溃不再有效,数据模型不再包含任何数据。
我发现在这种情况下会调用MainActivity
方法,因此我觉得我当时想要处理返回登录界面,但似乎不建议练习从应用程序的上下文启动一个活动,更不用说我们已经在恢复活动的过程中。
我真正想要的是,在Application.onCreate()
不再处于活动状态(并且所有静态数据都已丢失)之后不的应用程序保留活动状态按预期从Application
发布。
这似乎是一种非常常见的情况;关于我可能会忽略的简单的任何建议,或者我可以给出的更多信息?
答案 0 :(得分:1)
我有同样的问题。
现在我首先检查onResume()
MainActivity
中的静态数据,而静态数据为空我使用startActivityForResult
打开LoginActivity
来准备静态数据,然后在Activity.OK
返回onActivityResult
时继续。
答案 1 :(得分:0)
如果您确实希望将应用重新启动到LoginActivity,首先要考虑的是检入其他所有Activity.onCreate
:
if (yourStaticData == null) {
finish();
return;
}
我建议不要这样做,并在进程被杀死时使应用程序正常运行。
答案 2 :(得分:0)
clearTaskOnLaunch可能正是您正在寻找的。 p>