gpt4 book ai didi

java - 每次应用程序启动时 AlarmManager 都会触发

转载 作者:行者123 更新时间:2023-12-01 23:34:28 25 4
gpt4 key购买 nike

我的应用程序中有此代码

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.HOUR_OF_DAY, 11);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.AM_PM,Calendar.AM);
//Debug!!!!!
//calendar.set(Calendar.SECOND, Calendar.SECOND+5);
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent,0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY ,pendingIntent);

理论上它会在每天上午 11:30 设置一个警报,但实际上每次应用程序启动或当我返回主要 Activity 时它都会触发此警报。我想在每天的这个特定时间显示这个闹钟

最佳答案

当前时间在上午 11:30 之后将立即触发,因为您将 Calendar 对象设置为过去的时间。

一种解决方案是将您的日历与当前时间 (System.currentTimeMillis()) 进行比较,如果您的日历则添加一天已经是过去式了。

关于java - 每次应用程序启动时 AlarmManager 都会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com