【问题标题】:Android: Recovery Activity When I press HomeAndroid:按主页时的恢复活动
【发布时间】:2010-04-22 10:56:54
【问题描述】:

我有以下问题。

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

我已阅读有关活动生命周期的信息,但我没有找到明确的解决方案。

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

有人帮助我吗?

谢谢

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

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

    如果这是一个用户感兴趣的进度并且它仍在运行,您可以显示一个通知栏图标,直到进度完成。我认为您可以指定单击通知栏的特殊意图并使用您的活动过滤此意图。这样你就可以回到活动中了。但是您仍然面临活动被保存并且没有参考执行工作的后台线程的问题。

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

    【讨论】:

    • 活动仍然存在,因为服务正在向它发送数据,所以我认为应该可以恢复它
    • 该活动将一直存在,直到服务完成并且垃圾收集器可以清理该活动。
    • 好的,所以当服务仍在运行时,如果重新启动我的应用程序,我可以在堆栈中获取该活动的实例吗?
    • 或者同样的事情。如果我在显示进度条的活动中并且我按下一个按钮将我带到另一个活动,当我返回时,我可以恢复旧活动而不是启动一个新活动吗?
    • 我认为离开堆栈后,活动不应该被重用......编辑我的答案
    猜你喜欢
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多