首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统可以销毁属于前台任务的已停止的活动吗?

系统可以销毁属于前台任务的已停止的活动吗?
EN

Stack Overflow用户
提问于 2017-05-31 14:01:39
回答 4查看 335关注 0票数 1

来自官方医生

当活动A启动活动B时,活动A被停止,但系统保留其状态(例如滚动位置和输入表单的文本)。如果用户在活动B中按后退按钮,则活动A将恢复其状态。

活动A在这一点上没有被破坏。但是,如果一组开发人员选择“不保持活动”,则活动A将被销毁,当用户按下活动B中的后退按钮时,活动A将被重新创建。

也来自官方医生

注意:可以一次在后台执行多个任务。但是,如果用户同时运行多个后台任务,系统可能会开始销毁后台活动以恢复内存,从而导致活动状态丢失。

据我所知,“不要保留活动”很有用,因为它有助于重新创建操作系统在后台杀死应用程序进程的情况。

当活动B在前景中可见时,活动A是否有可能被os破坏(“不要阻止活动”)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-31 14:07:45

前台任务进程终止的一个场景是,在多窗口模式下,任务位于一个窗口,而另一个窗口中的用户进入设置并移除某些权限授予。然而,在这一点上,整个过程都消失了;到那时,活动B在前景中是可见的,但随后就消失了。

而且,如果设备在活动B处于前台时进行配置更改,则按后退或以其他方式导航到活动A,默认情况下活动A将被销毁并重新创建.但在那一点上,活动B不再是前景。

当然,您可以通过调用上面的finish()来破坏活动A。

因此,根据我对你问题的解释,答案是“不,如果你不打电话给finish(),活动A不会在活动B还在前台的时候被摧毁”。

票数 1
EN

Stack Overflow用户

发布于 2017-07-21 15:54:37

是吗?不是的。允许这样做吗?是。

Android目前不会在不破坏整个进程的情况下破坏后台的活动。然而,医生们认为它可以。由于安卓开发人员对导致不遵循文档中的指导原则(例如NetworkOnMainThreadException的引入)的应用程序发生大面积破坏的更改并没有感到内疚,我认为严格使用“不要继续活动”来严格测试应用程序是一个很好的做法。

票数 1
EN

Stack Overflow用户

发布于 2017-05-31 14:06:27

启动意图之后,执行finish()。这将运行活动的onDestroy方法。

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

https://stackoverflow.com/questions/44286895

复制
相关文章

相似问题

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