为什么没有Service.onStop方法?

时间:2012-04-19 21:42:16

标签: android android-service

我已经在Android服务上阅读了很多内容。据我了解,生命周期是:

void onCreate() 
    void onStart(Intent intent) 
    ...
void onDestroy()

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

但是没有onStop方法。 问题:

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

对于上下文,我有一些资源我想在服务运行时分配和发布(在#34;已启动"),以及另一组我想要的资源在服务是"创建"时分配和释放州。

1 个答案:

答案 0 :(得分:53)

  

据我了解,生命周期是:

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

  

为什么没有停止方法?

因为不需要一个。

  

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

您将使用onDestroy()来致电。

  

我可以检测到此事件吗?

您可以覆盖onDestroy()

  

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

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

  

对于上下文,我有一些资源,我想在服务运行时分配和释放(在“已启动”中),以及我希望分配和释放的另一组资源,而服务是“创造了“州。

“已创建”状态既用于命令模式(startService()onStartCommand()),也用于绑定模式(bindService()onBind())。因此,如果您致电startService(),您的服务将完全处于“已创建”状态,希望不到一毫秒。