当Android设备被锁定时暂停TimerTask并在解锁时恢复

时间:2014-09-23 09:59:39

标签: android timertask

我已将我的计时器设置如下。

Timer t;
TimerTask task;
t = new Timer();
t.schedule(task, 10000);
task = new TimerTask() {

        @Override
        public void run() {
            finish();

            try {
                t.cancel();
                t = null;
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }

        }
    };

现在一切正常。 Android设备被锁定时我的问题开始了。设备锁定时,定时器继续。我希望在设备锁定时暂停我的计时器,并在解锁时恢复。

提前谢谢你。

2 个答案:

答案 0 :(得分:1)

检查一下。如果您的设备已锁定/解锁,则会显示

KeyguardManager kgMgr = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean showing = kgMgr.inKeyguardRestrictedInputMode();

使用倒计时器和onTick()检查此情况。 If true stop timer /保存计数else继续。

答案 1 :(得分:0)

你可以尝试下面的代码

@Override
protected void onPause()
{
super.onPause();

// If the screen is off then the device has been locked
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
boolean isScreenOn = powerManager.isScreenOn();

if (!isScreenOn) {

    // The screen has been locked 
    // do stuff...
}
}