从我的一点 android 知识中,我了解到 android 操作系统可以在极端内存条件下杀死我的服务。
我创建了一个返回的服务START_STICKY
。该服务旨在在后台运行。
如果 android 即将终止我的服务,它会调用onDestroy
吗?
当它重新启动时,它会调用onCreate
吗?
从我的一点 android 知识中,我了解到 android 操作系统可以在极端内存条件下杀死我的服务。
我创建了一个返回的服务START_STICKY
。该服务旨在在后台运行。
如果 android 即将终止我的服务,它会调用onDestroy
吗?
当它重新启动时,它会调用onCreate
吗?
请参阅此处,开发指南。http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle
onCreate()
仅在进程启动时调用,这可能是服务第一次运行时,或者如果它在重新启动时被杀死,本质上是在它启动时调用。
onStartCommand()
每当客户端调用startService()
.
当服务被销毁/完全停止时,Android 应该调用onDestroy()
该服务。我认为这可能不会发生(例如,进程不是通过Android系统被杀死的)。在绑定服务的情况下,这是没有更多活动客户端绑定器的情况。
编辑:onCreate()
服务开始;onStartCommand()
有人使用服务;onDestroy()
服务被杀死/停止。
如果有人调用 Context.startService() 则系统将检索服务(创建它并在需要时调用其 onCreate() 方法)然后使用客户端提供的参数调用其 onStartCommand(Intent, int, int) 方法
...
服务既可以启动,也可以绑定连接。在这种情况下,只要服务已启动或有一个或多个使用 Context.BIND_AUTO_CREATE 标志的连接,系统就会保持服务运行。一旦这两种情况都不成立,就会调用服务的 onDestroy() 方法并有效地终止服务。从 onDestroy() 返回时,所有清理(停止线程、注销接收器)都应该完成。
http://developer.android.com/reference/android/app/Service.html
编辑:快速回答。两个问题都是肯定的