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

由于各种省电机制,您不能在大多数现代设备上以这种高频率使用重复报警。每分钟唤醒一次设备都会对电池寿命产生不利影响。

但是,如果您真的想这样做,您需要每次重新安排警报。不要安排重复闹钟,只需安排一分钟内即可关闭的闹钟。当该警报熄灭时,执行处理,然后安排一分钟后关闭的单个警报。这样你将能够获得准确的时间。