我正在使用WakeLock,但它耗费了大量电池。有没有替代解决方案??
答案 0 :(得分:3)
WakeLock
的整个想法是允许设备运行一些代码而不是进入睡眠模式。无论你用什么方式防止设备睡觉,它都会消耗电池。据我所知,“屏幕关闭”时运行代码的唯一方法是使用WakeLock
。
Android操作系统在功耗方面非常积极,除非您明确要求在设备进入省电模式时运行您的应用程序,否则它将“暂停”您的应用程序进程。
因此,如果您认为必须始终运行代码,则应接受电池消耗。如果应用耗尽了太多电量,请考虑更改您的设计和/或决定应用运行的频率和时长,尤其是当设备尝试进入省电模式时。
答案 1 :(得分:0)
您可以使用thread
在服务中实现infinite loop
但是当您停止服务时,请不要忘记释放您在服务中使用的所有资源,因为Android不会为您执行此操作。
答案 2 :(得分:0)
尝试使用Async Tasking: http://developer.android.com/reference/android/os/AsyncTask.html