2013-03-18 174 views
1

我刚刚注意到,android会假装通过在之前的活动中重新启动您,在后台将其杀死后重新启动应用程序。android - 在非主要活动中处理应用程序启动

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

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

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

2)我该怎么办?我不想每次调用onPause时都坚持数组。该数组在树的顶部可能很大。更不用说后面历史中的所有ListsActivities。

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

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

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

+0

你是什么意思“android假装在杀死...后恢复你的应用程序”?你在说要按“主页”按钮吗?唯一的问题是你不知道你在哪个目录?我想我对实际问题是什么感到困惑? – codeMagic 2013-03-18 22:33:47

+0

当你的应用程序在后台android可以杀死它,然后通过重新创建应用程序来“恢复”它,但在他停止的活动中启动用户。 – Mark 2013-03-18 22:36:33

+0

因此,例如我有一个2兆字节的树在内存中包含文件夹。我有一个活动显示每个文件夹,并将指向该活动的文件夹传递给该活动。为了在应用程序被终止后支持恢复,此文件夹必须将整个树保存在磁盘下面。 – Mark 2013-03-18 22:38:50

回答

0

你可以调用onPause完成(),当再次启动你的应用程序被重置。或者你可以重写方法onSaveInstanceState和OnRestoreInstanceState。

+0

onSaveInstanceState和onPause在正常的活动中都会被调用,所以我真的不想无缘无故地写文件。 – Mark 2013-03-18 22:11:38

相关问题