2015-10-02 20 views
6

OSがDozeモードになったときにAndroidアプリの動作をテストしようとしています。 Android API 23(Revision 1)を実行しているエミュレータを使用しています。 アプリケーションは、タイプELAPSED_REALTIME_WAKEUPのsetInexactRepeatingメソッドを使用して、AlarmManagerを通じてサービスを起動します。私は約3分ごとにアラームを発しました(テスト目的のみ)。いくつかの試み(公式ガイドは非常に不明です)の後、私はエミュレータの画面をロックし、dumpsysの推奨コマンドを実行することによって、エミュレータをIDLE状態にすることに成功しました。 デバイスがIDLEであるとき、私はまだアラームによって起動されているサービスを見ることができます。 これは予想された動作ではありません。私は、アラームが停止することを期待していた。 これはバグですか?または私は何かを逃していますか?Android M(プレビュー)DozeモードとAlarmManager

+0

エミュレータに関連する問題です。実際のデバイスでは、IDLE中にアラームが記録されている間停止します。 –

答えて

0

下記のコードを使用してください。

adb shell dumpsys deviceidle enable adb shell dumpsys battery unplug adb shell dumpsys deviceidle step adb shell dumpsys deviceidle force-idle

力のスマートフォンのウェイクアップのためのsetAndAllowWhileIdleを使用してください。

if (android.os.Build.VERSION.SDK_INT > 22) { am.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); } else { am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, sender); }

が、私は期待がアラームを停止することであると信じている。私の場合は

私はこれを使用しています。

関連する問題