如何正确启动服务并保持活力?

时间:2011-08-02 14:47:54

标签: android service

我知道同一主题还有其他问题,但我没有找到问题的答案。

我的目标是让一个在后台运行的服务作为位置监听器,当应用程序停止时(任务杀手),它不会停止。

目前,如果服务尚未启动,我将使用startService(Intent)启动服务,并使用bindService(Intent,ServiceConnection,0)绑定它。

现在,第一个问题是我的应用程序崩溃但服务已经启动,当我再次运行应用程序时,它可以工作。

第二个问题是,如果我使用高级任务杀手杀死我的应用程序,它也会杀死我的服务,虽然在服务页面中它表示当没有有界客户端并且如果停止服务()或者服务将停止服务已经调用了stopSelf()。

2 个答案:

答案 0 :(得分:1)

  

并且当应用程序停止时(任务杀手),它不会停止。

幸运的是,这是不可能的。如果您的用户希望停止服务,则用户可以通过任务杀手或“设置”中的“管理服务”屏幕停止服务。

  

目前,如果服务尚未启动,我将使用startService(Intent)启动服务,并使用bindService(Intent,ServiceConnection,0)绑定它。

通常,您只使用其中一种,而不是两种。

  

第二个问题是,如果我使用高级任务杀手杀死我的应用程序,它也会杀死我的服务,虽然在服务页面中它表示当没有有界客户端并且如果停止服务()或者服务将停止服务已经调用了stopSelf()。

不,因为除了startService()之外,您还调用了bindService()

答案 1 :(得分:0)

当任务管理器关闭应用程序时,服务停止。如果无法实现这一点,那么每个应用程序都会运行自己的服务,而无需用户对其进行任何控制。您可以在启动时启动该服务,然后当用户使用任务管理器关闭时,您可以重新启动该服务。