Android:按Home键时的恢复活动

xge*_*86x 5 android android-activity

我有以下问题。

服务正在从API下载数据时,我有一个活动显示进度条。我希望当我按Home并重新启动程序时,该活动(不是第一个被调用的活动,但它在堆栈中)已被恢复,以便继续显示进度。

我已经了解了活动的生命周期,但是找不到明确的解决方案。

如果我在显示进度条的活动中,并且我按了将我带到另一活动的按钮,那么当我返回时,我可以恢复旧活动而不是启动新活动吗?

有人帮我吗?

谢谢

Jan*_*usz 3

问题是按主页按钮将擦除整个活动堆栈。这意味着不可能返回该活动,甚至不确定该活动是否仍然存在。

如果用户对此进程感兴趣并且仍在运行,则可以显示通知栏图标,直到该进程完成。我认为您可以指定单击通知栏的特殊意图,并根据您的活动过滤此意图。这样您就可以返回到活动中。但是您仍然面临这样的问题:活动已保存并且没有引用执行工作的后台线程。

如果您的 Activity 已离开堆栈,则会调用其 finish 方法。您稍后不应尝试重复使用此活动。最好的方法是想出一种方法可以保存活动的整个状态并在以后恢复。要恢复对执行工作的后台线程的引用,您可以对应用程序类进行子类化,并在子类中保存对正在运行的任务的引用。