为什么没有Service.onStop方法?

use*_*956 29 android android-service

我已经阅读了很多Android服务.据我了解,生命周期是:

void onCreate() 
    void onStart(Intent intent) 
    ...
void onDestroy()
Run Code Online (Sandbox Code Playgroud)

http://www.linuxtopia.org/online_books/android/devguide/guide/topics/fundamentals.html

但是没有onStop方法.问题:

  • 为什么没有停止方法?
  • 在我的服务上发出stopService请求时会发生什么?(来自外部,也许是Android本身).我能检测到这个事件吗?
  • 我想强制(或至少验证)我的服务是流程中的单身人士.我该怎么做(或Android是否在幕后强制执行此操作)?

对于上下文,我有一些资源,我想在服务运行时分配和释放(在"已启动"中),以及我希望在服务处于"已创建"状态时分配和释放的另一组资源.

Com*_*are 54

据我了解,生命周期是:

onStart()已经被弃用了几年.onStartCommand()是当前的生命周期方法.

为什么没有停止方法?

因为没有必要.

在我的服务上发出stopService请求时会发生什么?

你将被召唤onDestroy().

我能检测到这个事件吗?

你可以覆盖onDestroy().

我想强制(或至少验证)我的服务是流程中的单身人士.我该怎么做(或Android是否在幕后强制执行此操作)?

服务是天生的单身人士.在任何给定时间,您的服务将有0或1个实例.

对于上下文,我有一些资源,我想在服务运行时分配和释放(在"已启动"中),以及我希望在服务处于"已创建"状态时分配和释放的另一组资源.

"已创建"状态与命令模式(startService()onStartCommand())和绑定模式(bindService()onBind())一起使用.因此,如果你打电话startService(),你的服务将纯粹处于"创建"状态,希望不到一毫秒.

  • 请记住,如果使用BIND_AUTO_CREATE调用bindService,则在取消绑定之前不会调用onDestroy() (5认同)