AndroidAlarmsetExactAndAllowWhileIdle只触发一次
创始人
2024-10-06 06:31:05
0

在使用setExactAndAllowWhileIdle方法设置Alarm时,可能会遇到只触发一次的问题。这是因为该方法使用Doze模式,系统会限制Alarm触发的次数。解决方法是使用AlarmManager的setRepeating方法设置循环Alarm,然后在AlarmReceiver中重新设置Alarm使其可以继续触发。以下是示例代码:

// 设置Alarm
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
long triggerTime = System.currentTimeMillis() + 60 * 1000; //1分钟后触发
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent);
} else {
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, triggerTime, 60 * 1000, pendingIntent);
}

// AlarmReceiver中重新设置Alarm
public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // 每次触发Alarm重新设置Alarm
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent alarmIntent = new Intent(context, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);
        long triggerTime = System.currentTimeMillis() + 60 * 1000; //1分钟后触发
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent);
        } else {
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, triggerTime, 60 * 1000, pendingIntent);
        }
    }
}

相关内容

热门资讯

必备教程!德州局HHpoker... 必备教程!德州局HHpoker透视脚本,aa poker辅助,玩家教你(有挂辅助),支持语音通讯、好...
透视教程"wepok... 1、透视教程"wepoker-h5下载"详细辅助必赢教程(原生是真的有挂)。2、wepoker-h5...
最新技巧!wepoker的辅助... 最新技巧!wepoker的辅助器,来玩app 德州 辅助,高科技教程(有挂技巧);人气非常高,ai更...
透视有挂"wpk透视... 透视有挂"wpk透视辅助方法"详细辅助存在挂教程(本来真的是有挂)是一款可以让一直输的玩家,快速成为...
玩家必备攻略!佛手在线大菠萝技... 玩家必备攻略!佛手在线大菠萝技巧,wepoker线上大神,教你教程(有挂技巧);大神普及一款德州ai...
透视系统"wepok... 透视系统"wepoker透视最简单三个步骤"详细辅助高科技教程(从来真的是有挂)科技教程也叫必备教程...
必看攻略!德扑圈透视,德普之星... 1、必看攻略!德扑圈透视,德普之星透视辅助软件激活码,技巧教程(有挂辅助);详细教程。2、德普之星透...
透视线上"wepok... 透视线上"wepoker-h5下载"详细辅助揭秘教程(都是真的有挂);1.wepoker-h5下载 ...
必看攻略!pokemmo辅助器... 必看攻略!pokemmo辅助器脚本下载,aa poker透视软件,必赢教程(有挂技巧)这是由厦门游乐...
透视有挂"wepok... 自定义wepoker看底牌系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...