【发布时间】:2017-04-17 10:49:36
【问题描述】:
我正在尝试使用具有 PendingIntent 的 AlarmManager 每 1 分钟运行一次服务。使用 setInexactRepeating 功能,我可以在除了 Samsung Device 之外的所有手机上运行该服务,到目前为止我已经测试过。
案例 1:Android 5.1 - 下面的代码在三星设备中每 1 分钟运行一次,后期变为 5 分钟间隔
案例 2:Android 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 优化。我的问题仍然存在。
我希望解决这个问题或任何替代方案,以相同的方式运行服务而不会耗尽电池。
【问题讨论】:
-
与android 6,集成了DozeMode:developer.android.com/training/monitoring-device-state/…
标签: android android-service alarmmanager samsung-mobile repeatingalarm