0

私はAlarmManagerとPendingIntentを使用して1分ごとにサービスを実行しようとしています。 setInexactRepeating関数を使用すると、これまでのところ私がテストしたところ、Samsung Device以外のすべてのモバイルでサービスを実行できます。Android AlarmManagerの問題 - Samsung Device

ケース1:アンドロイド5.1 - コードの下には1分ごとのサムスンのデバイスを実行し、後でそれが間隔

ケース2 5分になりますステージ:アンドロイド6.0 - コードの下にはサムスンでは5分ごとに実行しますデバイスと後の段階では、それは同じ

alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, 1, 1000 * 60, alarmIntent); 

サムスンは、Android 5.1のまま - ログイン

04-17 15:53:06.856 12381-13117/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:54:16.291 12381-13949/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:55:00.036 12381-14679/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:56:01.121 12381-15660/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:57:16.591 12381-16773/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:58:23.066 12381-17318/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 16:01:14.366 12381-19279/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 16:06:13.901 12381-25377/com.example.android.scheduler D/LL_LOG: loadFromNetwork 

サムスンのAndroid 6.0ログイン

04-17 15:27:18.621 12920-31956/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:32:18.681 12920-5003/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:37:18.651 12920-9665/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:42:18.641 12920-10642/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:47:18.831 12920-11739/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:52:18.741 15868-15882/com.example.android.scheduler D/LL_LOG: loadFromNetwork 
04-17 15:57:18.661 15868-17146/com.example.android.scheduler D/LL_LOG: loadFromNetwork 

注:私は、APPのなっている(AlarmManager not working on Samsung devices in Lollipop & Android exact Alarm is always 3 minutes off)ここで述べたように、私の問題は同じままOptimization.Still。

私はバッテリーを消耗させることなく同じ方法でサービスを実行するために、これを解決するか、あるいは何か別の方法で解決することを期待しています。

+0

with Android 6、DozeModeが統合されました:https://developer.android.com/training/monitoring-device-state/doze-standby.html – Opiatefuchs

答えて

0

さまざまな省電力メカニズムにより、この最新のデバイスでは、この高頻度の繰り返しアラームを使用することはできません。あなたのデバイスを毎分覚醒させると、バッテリーの寿命が悪くなります。

ただし、本当にやりたい場合は、毎回アラームのスケジュールを変更する必要があります。繰り返しアラームをスケジュールする代わりに、1分以内に消えるアラームを1つだけスケジュールしてください。そのアラームが消えたら、処理を行い、1分後に消えるアラームを1つスケジュールします。このようにすれば、正確なタイミングを得ることができます。

関連する問題