2017-06-29 3 views
-1

私はAlarmManagerを使用するアンドロイドアプリを開発しています。 アプリは非常に正確である必要がありますが、AlarmManager.setExactはAPI 19(Android Kitkat)からのみ使用でき、アンドロイドバージョンが4(API 16)の古い携帯電話を使用しています。 サービスを使用しようとしましたが、電話をロックすると停止します。 私は19より下のAPIで動作する代替手段が必要です。 アイデアがありますか?AlarmManager.setExactの代わりにandroid api 18以下

+0

「非常に正確です」という定義に応じて、Androidではタイミングに関して「非常に正確」はありません。 – CommonsWare

+0

@CommonsWare非常に正確なことは、アラームが2番目に起動することを意味します。 –

+0

Android 6.0+ではDozeモードとアプリスタンバイでは発生しません。 (おそらく2番目のものではないが)かなり正確で唯一信頼できるのは、 'AlarmManager'の' setAlarmClock() 'と、目覚まし時計用に予約されているユーザーの立場です。 – CommonsWare

答えて

1

ジャストセット()。 API 19以前では、setは正確なセットでした。セットが不正確にされたときにsetExactが追加されました。

+0

いいえ、私がset()を使用すると、アラームが非常に遅く開始されます –

+0

上記のように、Androidでは何も正確ではありません。あなたが望むような、特に第二のものは何もありません。 Androidはそれ以上のバッテリーを最適化します。 –

+0

あなたのtargetSDKはどのように設定されていますか?これがセットの振る舞いを制御します。 targetSDK> = 19の場合、setは不正確です。 targetSDK <19の場合、setは正確です。これは、デバイスのAPIレベルとは無関係です。参照:https://developer.android.com/about/versions/android-4.4.html –

関連する問題