我将alarmMgr设置为这样:
alarmMgr.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
1000 * 60 * 5L, alarmIntent)和BroadcastReceiver输出
public class BroadcastReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("Execute time:" + Calendar.getInstance().getTime());
}...}我昨天拿到了正确的日志,然后就出错了。它看起来像在同一时间多次触发警报,我不知道为什么,我想可能是安卓工作室日志捕捉有一些未知的机制。
2022-04-14 10:44:40.447 8663-8663/com.example.ss I/System.out: 2022-04-14 10:46:40.441 8663-8663/com.example.ss I/System.out: 2022-04-14 10:48:40.440 8663-8663/com.example.ss I/System.out: 2022-04-14 10:50:40.444 8663-8663/com.example.ss I/System.out: 2022-04-14 10:52:40.446 8663-8663/com.example.ss I/System.out:
我整晚都在看日志,下面是日志的一部分。系统日志显示在这里,
2022-04-1507:33:39.945 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-1507:33:39.951 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-1507:33:39.954 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-1507:33:39.960 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-1507:33:39.963 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-1507:33:39.966 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-1507:33:39.969 13580-13580/com.example.ss I/System.out:执行时间:Fri 1507:33:39 GMT+09:00 2022 2022-04-15 07:35:40.066 13580-13580/com.example.ss I/System.out:执行时间:星期五4月15日07:35:40 GMT+09:00 2022 2022-04-15 08:40:40.096 13580-13580/com.example.ss I/System.out:执行时间:星期五04月15日08:40:40 GMT+09:00 2022 2022-04-15 08:40:40.103 13580-13580/com.example.ss I/System.out:执行时间:星期五04月15日08:40:40 GMT+09:00 2022 2022-04-15 08:40:40.106 13580-13580/com.example.ss I/System.out:执行时间:星期五04月15日08:40:40 GMT+09:00 2022
关于方法(不准确/实际时间),官方称为了节省电池,系统会一起触发一些报警,告警统计显示,根本没有这么近距离的报警,有时我得到了正确的输出。我还测试了间隔15分钟的方法,输出仍然出错,我不认为原因是不精确的方法。
警报统计: 1000:android +6s300ms运行,353个唤醒: +3s273ms 0唤醒40个警报,最后-4m9s148ms: alarm:com.android.server.action.NETWORK_STATS_POLL +2s837ms 0唤醒226个警报,最后-4m9s148ms: alarm:TIME_TICK +699 347 347唤醒347警报器,最后-1h41m9s348 347: walarmjob.delay +102 0唤醒1个警报,最后4m9s148: 警报:GraphicsStatsService +60 2唤醒2警报器,最后2小时14m49s133: walarm:ScheduleConditionProvider.EVALUATE +31ms 0唤醒1个警报,最后8h39m9s148ms: alarm:android.intent.action.DATE_CHANGED +9ms 1唤醒1个警报,最后-13h27m11s167ms: 瓦姆:JS懒惰 +8ms 1唤醒1个警报,最后-19h41m4s292ms: 瓦姆:重试 +6ms 2唤醒2个警报,最后-17h41m9s348ms: walarmjob.deadline u0a40:com.android.providers.calendar +364运行,4个唤醒: +364 4唤醒4警报器,最后-1小时39m9s148: walarm:com.android.providers.calendar.intent.CalendarProvider2 u0a89:com.android.systemui +470 27运行,27个唤醒: +470 27 27唤醒27警报器,最后-14h38m7s109 27: walarm:com.android.internal.policy.impl.PhoneWindowManager.DELAYED_KEYGUARD u0a113:com.example.ss +4s532运行,0唤醒: +4s532ms 0唤醒185警报器,最后-4m9s148ms: 警报:com.example.ss/..BroadcastReciever`‘
发布于 2022-04-15 10:33:09
https://stackoverflow.com/questions/71878969
复制相似问题