0

在我们的应用程序中,我们几乎完全依赖于来自 Web 服务的数据。在第一次启动时,我们开始LoginActivity处理登录和检索这些数据,然后继续到使用数据的MainActivity所有 UI 开始的地方。

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

我发现Application.onCreate()在这种情况下会调用该方法,所以当时我似乎想要处理返回登录屏幕,但似乎不建议从应用程序启动活动上下文,更不用说我们已经在恢复活动的过程中了。

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

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

4

3 回答 3

1

我也有同样的问题。

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

于 2013-05-10T01:32:18.200 回答
0

如果您真的想让应用程序重新启动到 LoginActivity,首先想到的是每隔一个检查Activity.onCreate

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

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

于 2013-05-10T01:25:26.083 回答
0

clearTaskOnLaunch可能是您正在寻找的。

于 2013-05-10T01:28:15.187 回答