Nastavil som časovač, ako je uvedené nižšie.
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();
}
}
};
Všetko funguje teraz. Môj problém sa spustí, keď sa zariadenie Android dostane do uzamknutia. Časovač pokračuje, keď je zariadenie uzamknuté. Chcem pozastaviť svoj časovač, keď sa zariadenie zamkne a vráti sa späť, keď je odomknuté.
Vopred ďakujem.
odpovede:
0 pre odpoveď č. 1môžete skúsiť nižšie kód
@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 pre odpoveď č. 2
Skontroluj to. Zobrazuje sa, či je vaše zariadenie uzamknuté / odomknuté
KeyguardManager kgMgr = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean showing = kgMgr.inKeyguardRestrictedInputMode();
Použite časovač odpočítavania a onTick()
z kontroly tejto podmienky. If
skutočný časovač zastávky / uloženie počtu else
ďalej.