我已将我的计时器设置如下。
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设备被锁定时我的问题开始了。设备锁定时,定时器继续。我希望在设备锁定时暂停我的计时器,并在解锁时恢复。
提前谢谢你。
答案 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...
}
}