首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持活动活力

保持活动活力
EN

Stack Overflow用户
提问于 2012-03-26 20:01:54
回答 1查看 4.7K关注 0票数 1

我的应用程序中有一系列活动,从活动"A“开始,然后是"B”、"C“、"D”和"E“。活动"A“、"B”、"C“和"D”是透明活动(透明主题),而"E“是不透明的。

要求活动"A“不应完成。我读到了一个博客http://www.skill-guru.com/blog/2011/01/13/android-activity-life-cycle/,它说

如果某个活动失去了焦点,但仍然可见(也就是说,一个新的非完全大小或透明的活动已经聚焦在您的活动之上),则暂停。如果一个活动被另一个活动完全模糊了,则停止。。

除非用户浏览活动"D“,否则不会调用活动"A”的onStop(),但是当调用活动"E“时才调用活动”D“。

我们是否可以在活动堆栈中保持活动"A“的运行?在应用程序对象中保留活动的静态引用,这样框架就不会扼杀它,这是一个很好的解决方案吗?我可以采取什么预防措施使"A“不被杀死?有什么方法可以让我得到通知,如果它被框架扼杀了,我就可以重新创建它了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 20:11:07

的要求是活动"A“不应该完成。

一个活动通过调用finish()完成。这通常发生在用户按后退按钮时。

活动"A“的onStop()直到用户浏览到活动"D”才被调用,但是在调用活动"E“时调用它。

对,是这样。

是否可以让活动"A“在活动堆栈中运行?

它在活动堆栈中“运行”(对于“运行”的任何合理定义),直到您调用finish()时,用户按回,或者进程被终止。onStop()对此没有任何影响。

是一个很好的解决方案,在应用程序对象中保留活动的静态引用,这样框架就不会扼杀它吗?

不,因为这不会有帮助的。该活动将保留在内存中,直到您调用finish()、用户按回或进程终止为止。

,我能采取什么预防措施使"A“不被杀死?

不要调用finish()

是否有一种方法,如果它被框架所扼杀,我就可以得到通知,以便我可以重新创建它?

如果您的活动完成了,将用onDestroy()调用它。如果进程被终止,这种情况可能发生,也可能不会发生,这取决于当时触发终止的原因和系统的状态。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9878924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档