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();
        }

你可能感兴趣的:(android)