我有一个关于Android Life Cycle
的问题。我正在开发一个带有Foreground Service
(状态栏中的通知)的应用程序。启动服务后,我看到手机中的Application Manager
应用程序已启用"强制停止"按钮。然后我通过代码停止服务
stopService(new Intent(getApplicationContext(), ShakeService.class));
我发现,即使在服务停止后(通知也消失了),"强制停止"按钮也是启用的。我确信应用程序中没有其他服务或AsyncTask
或Handler
。你知道"强制停止"到底是什么意思吗;如何完美地停止服务(使"强制停止"按钮保持禁用状态)??感谢
用户退出的应用程序可能有注册到设备事件的服务和侦听器。即使用户退出应用程序,这些功能也会根据应用程序接收到的事件进行操作。
例如,即使用户退出应用程序,GCM仍然可以工作。
如果用户手动单击了Force Stop
,则该特定应用程序将不会运行任何Services
/Listeners
/Background
操作。
如果Clear Cache
或用户点击,这将清除应用程序临时存储的数据,而不是像SqLite
或Realm
这样的数据库。例如存储在SharedPreference
中的数据
只有当内存不足时,Android系统才会强制停止服务,并且必须为以用户为中心的活动恢复系统资源。
-
如果服务绑定到以用户为中心的活动,那么不太可能被杀死,
-
如果服务被声明为在前台运行,那么它几乎永远不会被杀死。
-
如果服务已启动并且是长时间运行的,则系统将随着时间的推移降低其在后台任务列表中的位置。
更多详细信息请参阅此处
如果手动执行强制停止,则意味着它将终止该应用程序中的所有服务。