简体   繁体   English

Android AlarmManager问题-Samsung设备

[英]Android AlarmManager Issue - Samsung Device

I'm trying to run a service for every 1 minute using AlarmManager with PendingIntent. 我试图使用带有PendingIntent的AlarmManager每1分钟运行一次服务。 With the use for setInexactRepeating function, i can able to run the service in all mobiles except Samsung Device , as far i tested till now. 通过使用setInexactRepeating函数,到目前为止,我可以测试除Samsung Device之外的所有手机上的服务。

Case 1: Android 5.1 - Below code runs every 1 Min in Samsung Device and later stage it turns to 5 mins interval 情况1:Android 5.1-以下代码在Samsung Device中每1分钟运行一次,稍后阶段变为5分钟间隔

Case 2: Android 6.0 - Below code runs every 5 mins in Samsung Device and later stage it remains same 情况2:Android 6.0-以下代码在Samsung Device中每5分钟运行一次,以后阶段保持不变

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

Samsung Android 5.1 - Log 三星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

Samsung Android 6.0 Log 三星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

Notes: As said here ( AlarmManager not working on Samsung devices in Lollipop & Android exact Alarm is always 3 minutes off ) i have turned of APP Optimization.Still my issue remains same. 注意:如此处所述( AlarmManager在LollipopAndroid 上的三星设备上无法正常运行, Alarm Alarm始终处于关闭状态3分钟 ),我已开启APP Optimization.Still,但问题仍然存在。

Im expecting to solve this or any alternatives to run service same way without battery drain. 我希望解决此问题或任何替代方案以相同的方式运行服务而不会浪费电池。

You cannot use repeating alarms with this high frequency on most modern devices due to various power-saving mechanisms. 由于各种节电机制,您不能在大多数现代设备上以如此高的频率使用重复警报。 Waking your device every minute will do bad things to the battery life. 每分钟唤醒设备会对电池寿命造成不良影响。

However, if you really want to do it, you need to reschedule the alarm each time. 但是,如果您确实要这样做,则每次都需要重新安排警报的时间。 Instead of scheduling a repeating alarm, just schedule a single alarm that will go off in a minute. 无需计划重复警报,只需计划将在几分钟内响起的单个警报即可。 When that alarm goes off, perform your processing and then schedule a single alarm that will go off 1 minute later. 当该警报响起时,请执行处理,然后安排将在1分钟后响起的单个警报。 In this way you will be able to get accurate timing. 这样,您将可以获得准确的时间。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM