2011-06-19 57 views
1

因此,我已经编写了一个主要活动(A)的应用程序,以及其他各种可以做某些事情的子活动,并将工作重新报告给main,并完成。Android - 告诉父母活动是否已被破坏

我碰到的是,如果用户离开我的应用程序在屏幕B或C,当他们稍后回来,并且dalvik已经销毁我的活动以获得更多RAM时,应用程序将从B或C,并从保存的意图中读取所有初始化的东西,并继续,如同没有任何事情发生。直到他们回到活动A,在那里我们从意想不到的事情中接近力量。

我搭配重写onStop()并打完电话,但我认为这有点焦土,我想让他们离开这个活动并回来。但我也想检测一下主要活动是否已经被破坏,然后销毁我的整个活动堆栈。

从阅读的角度来看,我认为onDestroy()并不总是被调用,所以对于我来说插入一些逻辑到活动A的onDestroy ....任何想法都是不可靠的。

回答

0

尝试从标记FLAG_ACTIVITY_NO_HISTORY开始您的子活动B和C.

+0

有趣的是,我还没有搞乱意图标志之前。这些似乎只是复制了覆盖B和C的'onStop'的功能(焦土),但是它们在主活动的'onActivityResult'上返回了一些空回来,我可以捕获它们以用于持久化....我会与其他一些看起来很有前途的标志修补并报告。 – Eric

+1

我仍然不能像想象的那样工作,但我在这个过程中学习了很多关于意图标志的知识,所以不好意思将它标记为正确。我结束了去焦土路线(重写onStop,调用'finish();'),因为我的数据处于不一致的状态是不可接受的。 – Eric

相关问题