1. 程式人生 > >android防止螢幕關閉後後臺服務停止執行

android防止螢幕關閉後後臺服務停止執行

android螢幕關閉後,後臺服務用的handler,timer之類的定時器會被暫停執行,螢幕開啟後重新執行。

為了防止定時器被執行,可以在服務中使用 WakeLock。

在服務開始的地方執行:

        wakeLock=((PowerManager)getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
        if(wakeLock!=null)
        {
            wakeLock.acquire();//這句執行後,手機將不會休眠,直到執行wakeLock.release();方法
        }

所以需要在服務停止的時候執行

        if(wakeLock!=null)
        {
            wakeLock.release();
        }