3

を起動する機能を備えたアプリを作っていTimerます。しかし、私は非常に深刻な問題に直面しています。

10 minutesここで、を使用するタイマーを見つめたとしCountDownTimerます。10分後、ビープ音が鳴るはずです。ここで、ホームボタンを押して、アプリケーションをバックグラウンドで実行するとします。CountDownTimerプロパティは、カウントダウンを継続することです。したがって、10分後に。を取得しbeepます。

ただし、これはスクリーンタイムが切れていない場合に発生します。画面が空白/黒になった場合screen time is outでもタイマーは継続しますが、終了時にアプリが一時停止しているようにアプリケーションで何も実行されません。モバイルのいずれかのボタンをクリックしてモバイルをアクティブにすると、アプリケーションはバックグラウンドで実行を開始しますまた..

これを止めて、スクリーンタイムがなくなってもアプリを実行したいと思います。

どうすればこれが可能になりますか。

4

1 に答える 1

4

CPUを実行し続けるには、部分的なwakelockを取得する必要があります。これにより、タイマーが引き続き実行されます。それ以外の場合、デバイスはスリープ状態になります。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
 PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Countdown");
 wl.acquire();

最後に、リリースを行うことができます。

 wl.release();
于 2012-09-06T04:54:20.267 に答える