我知道同一主题还有其他问题,但我没有找到问题的答案。
我的目标是让一个在后台运行的服务作为位置监听器,当应用程序停止时(任务杀手),它不会停止。
目前,如果服务尚未启动,我将使用startService(Intent)启动服务,并使用bindService(Intent,ServiceConnection,0)绑定它。
现在,第一个问题是我的应用程序崩溃但服务已经启动,当我再次运行应用程序时,它可以工作。
第二个问题是,如果我使用高级任务杀手杀死我的应用程序,它也会杀死我的服务,虽然在服务页面中它表示当没有有界客户端并且如果停止服务()或者服务将停止服务已经调用了stopSelf()。
答案 0 :(得分:1)
并且当应用程序停止时(任务杀手),它不会停止。
幸运的是,这是不可能的。如果您的用户希望停止服务,则用户可以通过任务杀手或“设置”中的“管理服务”屏幕停止服务。
目前,如果服务尚未启动,我将使用startService(Intent)启动服务,并使用bindService(Intent,ServiceConnection,0)绑定它。
通常,您只使用其中一种,而不是两种。
第二个问题是,如果我使用高级任务杀手杀死我的应用程序,它也会杀死我的服务,虽然在服务页面中它表示当没有有界客户端并且如果停止服务()或者服务将停止服务已经调用了stopSelf()。
不,因为除了startService()
之外,您还调用了bindService()
。
答案 1 :(得分:0)
当任务管理器关闭应用程序时,服务停止。如果无法实现这一点,那么每个应用程序都会运行自己的服务,而无需用户对其进行任何控制。您可以在启动时启动该服务,然后当用户使用任务管理器关闭时,您可以重新启动该服务。