如果我的应用程序中没有其他活动在运行,如何停止Android服务?

时间:2010-03-13 23:43:28

标签: android android-service

有没有办法可以测试我的应用中是否还有其他活动?我希望在onDestroy方法中停止服务,但是如果我的应用程序中没有其他活动仍在堆栈中,则只想这样做。

我有调用停止主活动的onDestroy()方法中的服务。除了如果用户启动我的应用程序,然后在我的应用程序中启动一些活动,然后点击主屏幕和RELAUNCHES我的应用程序,它们将颠覆我的订单,主要活动现在将高于我的应用程序的其他活动时,这是完美的。从这种状态,如果他们点击后退按钮并“退出”我的主屏幕,他们将触发onDestroy()方法并终止服务,即使堆栈上还有其他活动打开。我想通过停止服务来避免这种情况,如果我确定我的其他活动没有在堆栈上打开。可能的?

1 个答案:

答案 0 :(得分:16)

  

如何启动一项服务   只要我的任何一个继续运行   应用程序的活动仍然在   堆叠,但没有时停止   留?

请勿使用startService()stopService()。相反,即使您不需要绑定连接,也请使用bindService()unbindService()。绑定/解除绑定是引用计数。如果您使用bindService()标记致电BIND_AUTO_CREATE,则第一次bindService()来电将启动您的服务。然后,当所有bindService()来电都有匹配的unbindService()来电时,Android会自动关闭您的服务。