【发布时间】:2013-01-27 07:57:03
【问题描述】:
这是相当详尽的,所以我会尽量清楚。目前,我的应用程序在启动时需要重新加载一些数据。我在主要活动的 onCreate/onRestart 方法中加载这些数据。但是,如果用户从不离开当前任务,我需要小心不要重新加载数据。
例如,如果我需要从我的主要活动启动内置的联系人应用程序来选择一个联系人,那么我的主要活动将在我选择一个新联系人时暂停/停止。当我回到我的主要活动时,将调用 onRestart。在这种情况下,因为我从未离开过应用程序的任务,所以我不想重新加载数据。这意味着需要在此处包含一些检查,以确定用户是否直接从联系人应用程序返回而未离开它。
否则,如果用户在联系人应用程序打开时退出并从启动器菜单(或最近的应用程序列表等)重新启动该应用程序 - 我想关闭联系人应用程序并在主要活动时重新加载数据onRestart 方法被调用。
有没有办法在不使用任何可怕的用户权限(例如 GET_TASKS)的情况下做到这一点。我已经被这个问题困扰了很长时间,所以任何帮助都将不胜感激:)
Tyvm, B.坎贝尔
【问题讨论】:
-
使用contentproviders 和loaders 可以帮助你。您无需手动重新加载数据。
-
您好,感谢您的回复。我知道我的用例有点不寻常,但我只想在活动开始(或重新启动)时重新加载数据。 ContentProviders 是非常有用的工具,但在这种情况下并非如此。
-
另外,我认为这里不需要代码。这更像是一个 is-this-possible 和理论上-how-would-you-do-it 类型的问题,而不是 here-is-my-code-can-you-fix-it 类型的问题。不过,如果您认为对您有帮助,我可以提供一些代码?
-
你能试试
getTaskId()吗?我将它用于其他目的,但我希望它可以帮助你。返回值将在活动的生命周期内保持不变(如文档所述)。
标签: android android-activity task lifecycle