我尝试每天中午 12:00 触发闹钟,但为什么它在中午 12:00 的 10/20 分钟后触发?

问题描述 投票:0回答:1

公共无效alarmUpdateForEveryDay(上下文上下文){ AlarmManager AlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

    Intent intent = new Intent(context, NewDayReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 50, intent, PendingIntent.FLAG_IMMUTABLE);

    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, 0); 
    c.set(Calendar.MINUTE, 0); 
    c.set(Calendar.SECOND, 0); 
    if (System.currentTimeMillis() > c.getTimeInMillis()) {
        c.add(Calendar.DAY_OF_MONTH, 1); // Add 1 day
    }

    long midnight = c.getTimeInMillis();

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, midnight, AlarmManager.INTERVAL_DAY, pendingIntent);
    
    Log.d("current_time", new Date(midnight).toString());
}

我测试调整系统时间

java android function calendar repeatingalarm
1个回答
0
投票

请查看文档说明

从 API 19 (Build.VERSION_CODES.KITKAT) 开始,警报传递不准确:操作系统将转移警报以最大程度地减少唤醒和电池使用。

您应该使用

setExact
并在您的应用程序中创建重复机制

© www.soinside.com 2019 - 2024. All rights reserved.