销毁应用程序时维护大型Web服务数据集

时间:2013-05-10 01:17:39

标签: android web-services global-variables

在我们的应用程序中,我们几乎完全依赖于来自我们的Web服务的数据。在第一次启动时,我们启动LoginActivity,我们处理登录并检索此数据,然后继续进入MainActivity,其中开始使用消耗数据的所有UI。

我们将所有这些数据存储在static数据模型中,它可以很好地满足我们的需求,但是有些实例可以解决应用程序(由于内存限制)而{{{ 1}}保留其状态。因此,如果我去启动其他几个应用程序(导致这种情况发生)然后重新启动应用程序,它会尝试恢复Activity(依赖于服务中的数据)并因应用程序的事实而崩溃不再有效,数据模型不再包含任何数据。

我发现在这种情况下会调用MainActivity方法,因此我觉得我当时想要处理返回登录界面,但似乎不建议练习从应用程序的上下文启动一个活动,更不用说我们已经在恢复活动的过程中。

我真正想要的是,在Application.onCreate()不再处于活动状态(并且所有静态数据都已丢失)之后的应用程序保留活动状态按预期从Application发布。

这似乎是一种非常常见的情况;关于我可能会忽略的简单的任何建议,或者我可以给出的更多信息?

3 个答案:

答案 0 :(得分:1)

我有同样的问题。

现在我首先检查onResume() MainActivity中的静态数据,而静态数据为空我使用startActivityForResult打开LoginActivity来准备静态数据,然后在Activity.OK返回onActivityResult时继续。

答案 1 :(得分:0)

如果您确实希望将应用重新启动到LoginActivity,首先要考虑的是检入其他所有Activity.onCreate

if (yourStaticData == null) {
    finish();
    return;
}

我建议不要这样做,并在进程被杀死时使应用程序正常运行。

答案 2 :(得分:0)

clearTaskOnLaunch可能正是您正在寻找的。