android - 处理应用程序在非主要活动中启动

时间:2013-03-18 21:52:02

标签: android activity-lifecycle

我刚刚注意到android假装在后台通过重新启动你之前的活动来恢复你的应用程序。

1)我可以禁用此功能吗?

我的问题在于我的ListsActivity。它传递一个列表数组,其中包含要显示给用户的项目。有些是文件夹 - 选中后,我打开另一个ListsActivity,其中包含一个包含该文件夹内容的数组。例如,如果用户决定搜索特定文件夹及其子文件夹中的所有项目,则可以动态生成列表。

如果我的应用程序在我的ListsActivity中重新启动,我不知道我在哪里没有列表数组。

2)我该怎么办?

- 我不希望每次调用onPause时都持久化数组。树顶部的阵列可能很大。更不用说后面历史中的所有ListsActivities。

3)如果我发现我没有列表数组,是否可以从ListsActivity onCreate无缝重启应用程序?我的意思是没有显示The ListsActivity然后眨眼到主要活动。

编辑 - 请注意,这涉及递归,因为用户可以在任何时间点在历史记录中包含任意数量的活动。所以我有另一个问题:

4)如果以这种方式重新启动 - 当我回击时,我是否拥有完整的历史记录?还必须再次创建这些活动中的每一项吗?我打开了另一个问题,询问如何在此处测试:How to test your app being killed and restarted?

1 个答案:

答案 0 :(得分:0)

您可以在onPause中调用finish(),当重新启动您的应用时会重置。或者您可以覆盖方法onSaveInstanceState和OnRestoreInstanceState。