终止Android服务而不重置

时间:2012-01-31 03:29:09

标签: android

我知道强行查杀应用程序非常糟糕,但客户需要它。我需要为应用程序实施强制重启。这就是我实现它的方式:

我在我的应用程序(而非活动)BroadcastReceiver方法中创建了onCreate。我等待REBOOT命令被广播。收到后,我让它广播另一条服务调用stopSelf的消息,以便线程和服务有机会彻底退出。然后我在5秒钟后调用AlarmManager调用我的主要活动。最后让我的应用程序使用Process.kill(Process.myPid())自行终止。在大多数情况下,它工作,我只需要在它杀死进程之前添加一些额外的等待时间(可能通过等待每个正在运行的服务的TERMINATE广播)。我的问题是:在查看日志时,我发现系统会调度服务以重新启动。我担心冲突。有没有办法终止服务而没有重启的机会?

1 个答案:

答案 0 :(得分:0)

我通过让Receiver等待所有服务完成onDestroy()调用之前解决了这个问题。我也从Process.kill()更改为ActivityManager.killBackgroundProcesses()

作为一个旁注:我知道这是错误的,但确实感觉很酷,杀死了hehehe的过程。