0

私のアクティビティが Runnable を起動し、デバイスがスリープ モードになった場合、Runnable は一時停止され、スリープ モードから抜けた後、中断したところから続行されますか?

4

1 に答える 1

0

はい、そうです。

ただし、電話機がスリープ状態の間は有効期限が切れません。電話がスリープ状態の間は時間がカウントされないため、次のような (おそらく) 非直感的な動作が発生します。

t= 0 秒: タイムアウトを 1 分間に設定
t= 20 秒: 電話がスリープ状態になる
t= 40 秒: 電話が起動する
t= 60 秒: アラームが鳴ることを期待しているが、届かない
t= 80 秒: 20 秒がスリープ状態になるため、アラームが起動する時間はカウントされませんでした!

これが気に入らない場合は、AlarmManagerクラスを使用できます。使い方が難しく、システム リソースのコストも高くなりますが、スリープ状態に費やされた時間をカウントし、デバイスを復帰させます。

于 2014-11-17T19:56:28.297 に答える