我有一项服务做一些后台工作,只要我的应用程序中的某个特定条件发生变化,就应该继续运行。我使用了START_STICKY标志。
但是,如果需要资源,Android系统仍会终止服务。
我想到了解决方法。我想从onDestroy方法调用startService方法(基于我的应用程序中满足的内部条件),这样当android服务终止此服务时,如果我的应用程序需要它将重新启动。
这会有用吗?这对设备有害吗?
答案 0 :(得分:1)
A service running all the time == fast battery drainage
无论如何...我建议你改变你的设计,即在你的应用程序中使用BroadcastReceiver
来监听呼叫状态的变化,当呼叫状态改变时你的应用程序将捕获广播然后你可以在通话期间/之后做任何事情。
然后您可以从广播接收器启动一个服务..它应该执行您需要的任务,例如,调用状态更改,广播被触发,您的应用程序获取它,然后检查什么是呼叫状态,如果它在通话中,然后启动你的服务..然后当呼叫断开时,系统将触发另一个广播,你的应用程序将获得它然后你再次检查呼叫状态,如果它断开连接然后停止服务。希望你能帮助我。