我有一个服务[IntentService],它运行一个'计时器任务',计划在每5分钟后运行一次。我在安装应用程序时启动服务。
现在我想停止我的服务[服务运行'计时器任务'],但是当我使用stopService()方法时,我无法停止我的服务。我试图在我的服务的onDestroy()方法中添加一个日志,但是stopService()没有到达那里。
此外,由于stopService()返回boolean i记录了它的输出,它返回false。
我该如何阻止它?
答案 0 :(得分:0)
我有一个服务[IntentService],它运行一个'计时器任务',计划在每5分钟后运行一次。
请不要这样做。用户讨厌执行此操作的开发人员,并将使用任务杀手或“设置”应用程序强制停止您的应用程序。请使用AlarmManager
,这样您就可以占用更少的内存,并且对用户更友好。
我在安装应用程序时启动服务。
不支持此功能。特别是,从Android 3.1开始,这是不可能的,即使是你可能正在使用的无证件黑客也是如此。
现在我想停止我的服务[服务运行'计时器任务'],但是当我使用stopService()方法时,我无法停止服务。
最有可能的是,您的服务已停止。 IntentService
一返回onHandleIntent()
就会停止。 TimerTask
分叉线程来维护其计时器 - 如果你在TimerTask
中创建了这个onHandleIntent()
,那么你就是在泄漏这个线程。你无法阻止这个线程。一旦Android选择终止您的流程,它将随机消失。
另一方面,如果您摆脱TimerTask
并使用AlarmManager
,则可以使用IntentService
onHandleIntent()
方法进行实际定期工作