从最近的应用程序列表中刷新Android应用程序时会发生什么?

当您将应用程式从Android目前执行的应用程式清单中移除时,应用程式和资料会发生什么情况? 请继续阅读,我们调查。

今天的问答环节由我们感谢Android Enthusiast - Stack Exchange的一个分支,这是一个社区驱动的Q&A网站分组。

问题

Android Enthusiast阅读器Eldarerathis对应用程序刷卡功能感到好奇,它允许您通过主页按钮提取正在运行的应用程序列表,然后将其向右滑动,可能要关闭它们:

Ice Cream Sandwich中最近的应用程序列表增加了将应用程序从列表中滑出的能力,从而永久地将它们关闭(据我所知,这是一个香草功能,而不是一个CM /自定义ROM)。 文档和平台的亮点似乎不包括这个功能的底层工作,但我很想知道系统实际上在做什么。

进一步增加了我的好奇心,我决定做一个快速测试:我开始在CM9安装音乐,然后退出它。 然后,我检查了最近的应用程序列表,并看到它确实存在(并在适当的状态,基于缩略图)。 然后我进入Settings->Applications ,并停止武力音乐应用程序,但它在最近的名单还在上市,导致我相信这是没有连接到后台挥之不去的进程。

现在意识到音乐可能是一个糟糕的选择,我也测试了今日美国的应用程序。 这表现出基本相同的行为,它似乎是强制停止后(重要的)“重新启动”,这是有道理的,虽然最近的应用程序列表中的缩略图没有反映这一点(缓存,我在猜测?

那么,当你将应用程序从最近的列表中滑出时,在操作系统级别上会发生什么? 它只是清除应用程序的数据从RAM和垃圾收集它,破坏其保存的状态?

当您将应用从列表中轻扫时,究竟发生了什么?

答案

Android Enthusiast贡献者Austin Mills提供了一些洞察:

从最近的应用程序列表中滑动应用程序是一种香草,是的,没有很好的文档。 这一直是在各种Android的论坛讨论体面的数额的话题...的共识似乎是最好的描述在一些评论在这里 :该行为类似但不完全一样,关闭一个应用程序-一般(用于应用程序,没有定义明确的后退按钮处理)它是一样的事情,从一个应用程序退出足够的时间,你退出它。

链接有一些细节的细节,但总体上你可以认为它退出应用程序。

特定于音乐应用程序,我相信它启动一个服务,所以当任务本身(音乐应用程序/ UI)可能会关闭,服务继续在后台运行,以便您的音乐不会突然停止,只是因为任务被清除出于内存管理的原因。 这可能影响了你看到的。

然后,参加生活的问答环节,Eldarerathis回来与他自己的一些研究来回答的答案:

我似乎发现了神奇的搜索字词,导致了Google员工的一些解释。 具体来说,我发现了两个不同的地方,Dianne Hackborn解释了当你从最近的列表中滑动时发生了什么。 首先是她的Google+信息中的一个评论

[W]帽子具体发生在你刷卡走最近的任务是:(1)杀死应用程序的任何背景或空的程序(见这里的这是什么意思),和(2)使用新的API来告诉任何服务关于任务的应用程序被删除,所以它可以做任何它认为是适当的。

她还指出在博客中评论

实际上,删除最近任务中的条目将会杀死该进程存在的任何后台进程。 它不会直接导致服务停止,但是有一个API,他们找出任务被删除,以决定他们是否想要这意味着他们应该停止。 这是为了,删除说,最近的任务,电子邮件应用程序不会导致它停止检查电子邮件。

如果你真的想完全停止一个应用程序,你可以长按最近的任务去应用程序的信息,并强制停止那里。 强制停止是一个完全杀死的应用程序 - 所有进程被杀死,所有服务停止,删除所有通知,删除所有警报等。应用程序不允许再次启动,直到明确请求。

因此,它看起来像总结是刷卡应用程序淘汰之列先杀死所有后台进程的应用程序,然后使用onTaskRemoved以通知后台任务被删除的应用程序。 在这一点上,它看起来像它是由应用程序来决定会发生什么,所以我想有技术上是不是发生了什么超出该点应用硬和快速的规则。


有什么东西添加到解释? 声音在评论中。 想要阅读更多的技术精明的Stack Exchange用户的答案? 这里查看完整的话题

赞 (0)
分享到:更多 ()