這篇文章主要為大家展示了“如何保持Android Service在手機(jī)休眠后繼續(xù)運(yùn)行”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何保持Android Service在手機(jī)休眠后繼續(xù)運(yùn)行”這篇文章吧。
創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需網(wǎng)站策劃,是成都網(wǎng)站設(shè)計(jì)公司,為資質(zhì)代辦提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站改版熱線:18982081108最近項(xiàng)目中用到了service進(jìn)行計(jì)時(shí),在連接USB的情況下一切正常,但是拔掉USB后發(fā)現(xiàn),手機(jī)進(jìn)入休眠后service停止了工作。最后通過 PowerManager.WakeLock 在屏幕休眠后保持cpu喚醒狀態(tài)以使得service繼續(xù)運(yùn)行。
官網(wǎng)提醒:這個(gè)API會加劇耗電,所以在非必要情況下盡量不要使用。如果要使用盡量使用最低的等級,并在退出后釋放資源。
wake lock一共有四個(gè)等級:
Flag Value | CPU | Screen | Keyboard |
---|---|---|---|
PARTIAL_WAKE_LOCK | On* | Off | Off |
SCREEN_DIM_WAKE_LOCK | On | Dim | Off |
SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off |
FULL_WAKE_LOCK | On | Bright | Bright |
因?yàn)轫?xiàng)目中只需要保持cpu喚醒即可,所以使用 PARTIAL_WAKE_LOCK 即可。
在service中使用方式如下:
... private PowerManager.WakeLock wakeLock = null; ... @Override public void onCreate() { super.onCreate(); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TimerService.class.getName()); wakeLock.acquire(); } ... @Override public void onDestroy() { if (wakeLock != null) { wakeLock.release(); wakeLock = null; } super.onDestroy(); }
以上是“如何保持Android Service在手機(jī)休眠后繼續(xù)運(yùn)行”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!