gpt4 book ai didi

android - 使用警报管理器安排通知

转载 作者:行者123 更新时间:2023-11-29 21:13:53 27 4
gpt4 key购买 nike

我的 alarmManager 遇到了一个小问题。我正在尝试注册一个警报以在特定时间显示通知。这是我的做法:

Utils.SetAlarm(this, Utils.GOODMORNING, 7, 0, 0); // so at 7:00

public static void SetAlarm(Context context, int req, int hour, int minute, int second) {
AlarmManager am = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
Intent intent = new Intent(context, myService.class);
intent.putExtra(ACTION_REQUEST, req);
PendingIntent pi = PendingIntent.getService(context, 0, intent, 0);

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, second);

am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
}

public class myService extends IntentService {
private static final int GOODMORNING_NOTIFICATION_REQUEST = 517;

public myService() {
super("myService");
}

@Override
protected void onHandleIntent(Intent intent) {
int extra = intent.getIntExtra(Utils.ACTION_REQUEST, 0);

if (extra == Utils.GOODMORNING) {
Notification notification = new Notification.Builder(this)
.setContentTitle("title")
.setContentText("content")
.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(true)
.build();

NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);

notificationManager.notify(GOODMORNING_NOTIFICATION_REQUEST, notification);
}
}

我面临的问题是在我运行 Utils.SetAlarm void 后通知立即出现。它也会在早上 7:00 显示正常,因此它显然可以正常工作,但我想知道是否有人知道避免此问题的方法。谢谢

最佳答案

在您运行 Utils.SetAlarm void 后,您面临的通知会立即出现。因为上午 7:00 可能已在您的设备中完成,因此它在那个时候似乎正在工作。因此请尝试在当前时间为第二天设置闹钟大于报警时间

试试这个

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, second);
long time=calendar.getTimeInMillis();

if(time<System.currentTimeMillis()){
time=time+AlarmManager.INTERVAL_DAY;
}

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,time,
AlarmManager.INTERVAL_DAY, alarmIntent);

关于android - 使用警报管理器安排通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21964557/

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