0

我試圖使用AlarmManager和PendingIntent每運行一分鐘服務。通過使用setInexactRepeating函數,我可以在除了Samsung Device之外的所有移動設備上運行服務,至今爲止我都測試過。Android AlarmManager問題 - 三星設備

情況1:機器人5.1 - 下面代碼運行每隔1臺最小三星設備和稍後階段它變爲5分鐘間隔

情況2:機器人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 

注:由於這裏說的(AlarmManager not working on Samsung devices in Lollipop & Android exact Alarm is always 3 minutes off)我已經把APP的Optimization.Still我的問題仍然是相同的。

我期望解決這個或任何替代方案運行相同的方式服務沒有電池消耗。

+0

with android 6,DozeMode was integrated:https://developer.android.com/training/monitoring-device-state/doze-standby.html – Opiatefuchs

回答

0

由於各種省電機制,您不能在大多數現代設備上以這種高頻率使用重複報警。每分鐘喚醒一次設備都會對電池壽命產生不利影響。

但是,如果您真的想這樣做,您需要每次重新安排警報。不要安排重複鬧鐘,只需安排一分鐘內即可關閉的鬧鐘。當該警報熄滅時,執行處理,然後安排一分鐘後關閉的單個警報。這樣你將能夠獲得準確的時間。