码迷,mamicode.com
首页 > 移动开发 > 详细

Android应用的persistent属性

时间:2020-05-09 21:31:53      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:idm   作者   ef6   https   联系   关机   binder   persist   map   

在Android系统中,有一种永久性应用。它们对应的AndroidManifest.xml文件里,会将persistent属性设为true。

android:persistent="true"


我们知道,persistent一词的意思是“持久”,那么persistent应用的意思又是什么呢?简单地说,这种应用会顽固地运行于系统之中,从系统一启动,一直到系统关机。

为了保证这种持久性,persistent应用必须能够在异常出现时,自动重新启动。在Android里是这样实现的。每个ActivityThread中会有一个专门和AMS通信的binder实体——final ApplicationThread mAppThread。这个实体在AMS中对应的代理接口为IApplicationThread。

当AMS执行到attachApplicationLocked()时,会针对目标用户进程的IApplicationThread接口,注册一个binder讣告监听器,一旦日后用户进程意外挂掉,AMS就能在第一时间感知到,并采取相应的措施。如果AMS发现意外挂掉的应用是persistent的,它会尝试重新启动这个应用。



作者:Android技术研究
链接:https://www.jianshu.com/p/d0ef6ef4470d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Android应用的persistent属性

标签:idm   作者   ef6   https   联系   关机   binder   persist   map   

原文地址:https://www.cnblogs.com/Oude/p/12859944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!