/ / Pause TimerTask, wenn Android-Gerät gesperrt ist und wieder aufnehmen, wenn es entsperrt ist - Android, Timertask

Pause TimerTask, wenn Android-Gerät gesperrt ist und wieder aufnehmen, wenn es nicht gesperrt ist - Android, Timertask

Ich habe meinen Timer wie folgt eingestellt.

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

}
};

Alles funktioniert jetzt gut. Mein Problem beginnt, wenn Android-Gerät gesperrt wird. Der Timer wird fortgesetzt, wenn das Gerät gesperrt ist. Ich möchte meinen Timer pausieren, wenn das Gerät gesperrt wird, und es wieder aufnehmen, wenn es entsperrt ist.

Vielen Dank im Voraus.

Antworten:

0 für die Antwort № 1

Sie können unter dem folgenden Code versuchen

@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...
}
}

1 für die Antwort № 2

Überprüfen Sie dies. Gibt an, ob Ihr Gerät gesperrt / entsperrt ist

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

Verwenden Sie einen Countdown-Timer und onTick() Überprüfen Sie diesen Zustand. If True Stop Timer / speichern Sie die Anzahl else fortsetzen.