在android应用开发中,我们经常会用到Service让在运行在后台帮我们处理一些耗时间和性能的事情。android系统会在内存达到一定程度的时候杀死一些线程,后台运行的Service就经常在这之列。为了保证一些功能的顺利运行,那我们需要在Service被杀死后,重新启动这个Service。总结有几个方法:
一:利用Service生命周期,在onDestroy()方法中重启这个Service。这样系统就默认你的进程常驻内存了
二:如果是一些内存管理软件杀掉了程序进程时,以上方法就没用了。我们还是可以通过截获一些关键广播来启动自己的service。可以通过监听wifi连接,电池电量发生变化等广播来启动自己的service。
以上方法都是为了解决Service被杀死后重启,治标不治本,不能从根本上解决问题或者提高性能。在eoe看到一篇文章得到思路,可以利用系统定时发送广播,然后用广播接收器启动你的服务,然后用服务拿到Wakelock,再执行你需要的操作,再然后释放掉Wakelock,让手机进入休眠状态,等待下一次发送广播。这样完全可以从根本解决了这个问题,而且比原来用service常驻内存的方法更加提升了性能!本文仅给出思路,详细请查阅:http://my.eoe.cn/indexer/archive/4587.html