【问题标题】:Android - Tell if parent activity has been destroyedAndroid - 判断父活动是否已被破坏
【发布时间】:2011-06-19 15:53:06
【问题描述】:

所以,我编写了一个应用程序,它有一个 Main Activity (A) 和各种其他子 Activity,它们都在做某事,将工作报告回 main,然后完成。

我遇到的是,如果用户在屏幕 B 或 C 处离开我的应用程序,当他们稍后回来并且 dalvik 已经破坏了我的活动以获得更多 RAM ...应用程序从 B 或 C 处重新启动,并从保存的意图中读取所有初始化内容,并继续进行,就好像什么都没发生一样。直到他们回到活动 A,我们从意想不到的事情中获得了力量。

我一直在玩弄覆盖onStop() 并调用完成,但我认为这有点焦土,我想让他们离开那个活动然后回来。但我也想检测底层的主要活动是否已被破坏,然后破坏我的整个活动堆栈。

通过阅读,我了解到onDestroy() 并不总是被调用,所以我在活动 A 的 onDestroy 中插入一些逻辑是不可靠的......有什么想法吗?

【问题讨论】:

    标签: android android-activity oncreate ondestroy


    【解决方案1】:

    尝试使用标志 FLAG_ACTIVITY_NO_HISTORY 开始您的子活动 B 和 C。

    【讨论】:

    • 有趣,我之前没有搞过意图标志。尽管这些似乎只是复制了覆盖 B 和 C 的 onStop 的功能(焦土),但它们确实在主要活动的 onActivityResult 上返回了一些空返回值,我可以为持久性捕获这些返回值......我会修补其他一些看起来很有希望并报告的标志。
    • 我仍然无法让它像想象的那样工作,但我确实在这个过程中学到了很多关于意图标志的知识,所以我把它标记为正确。我最终选择了焦土路线(覆盖 onStop,调用 finish();),因为让我的数据处于不一致的状态是不可接受的。
    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    相关资源
    最近更新 更多