gpt4 book ai didi

android同时设置多个闹钟

转载 作者:太空宇宙 更新时间:2023-11-03 11:38:34 25 4
gpt4 key购买 nike

好的,让我修改一下问题,让它变得更简单。我希望你能帮我解决这个问题。两个警报应该同时安排,这里没有发生。我什至对未决 Intent 使用唯一的请求代码。 请帮帮我......

//On click Listener

private OnClickListener mOneShotListener = new OnClickListener() {
public void onClick(View v) {

Intent intent = new Intent(AlarmController.this, OneShotAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, 0);
//I even tried sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, PendinIntent.FLAG_UPDATE_CURRENT);


//the alarm to go off 30 seconds from now.

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 30);

// Schedule the alarm!

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);

//adds 2 minutes to the time

calendar.add(Calendar.MINUTE, 2);

sender = PendingIntent.getBroadcast(AlarmController.this,1, intent,0);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender2);
}
};

老问题:
我想同时设置两个闹钟来执行两个不同的操作。

例如。用户在 2 点钟设置闹钟并将持续时间设置为 15 分钟。第一个闹钟应在执行功能 1 的 2 点钟触发,第二个闹钟应在 2:15 触发,因为用户将持续时间指定为执行功能 2 的 15 分钟。除非用户更改时间,否则应在每天 2 点钟重复此操作。

我在点击按钮时调用这两个函数:

On Click Event

saveButton.setOnClickListener(new View.OnClickListener() {  
public void onClick(View view) {
..........
..........
new ReminderManager(this).setReminder(mRowId, mCalendar);
new ReminderManager(this).wakeReminder(mRowId, mCalendar, duration);
}
}

setReminder 包含

//sets alarm at 2'O clock

public void setReminder(Long taskId, Calendar when, String duration){  
Intent i = new Intent(mContext, OnAlarmReceiver.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId);
PendingIntent pi = PendingIntent.getBroadcast(mContext,(int)System.currentTimeMillis(), i, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);
}

wakeReminder包含

//adds duration i.e. 15mins

public void wakeReminder(Long taskId, Calendar when, String duration){
Intent i = new Intent(mContext, OnAlarmReceiverWake.class);
i.putExtra(RemindersDbAdapter.KEY_ROWID, (long)taskId);
Long d = Long.parseLong(duration);
Long mins = d*60*100;
Long milli = when.getTimeInMillis() + mins;
PendingIntent pi = PendingIntent.getBroadcast(mContext, (int)System.currentTimeMillis(), i, PendingIntent.FLAG_UPDATE_CURRENT);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, milli, pi);
}

我注意到,每当 mAlarmManager.set(); 成功执行时,LogCat 都会显示类似
的通知“enqueueToast pkg=com.jellboi.android.togglemode callback=android.app ITransientNotification$stub$proxy@43c0c5f8 duration=0”

但是当我同时设置两个闹钟时,当 mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi); 执行时,通知不会显示但在执行 mAlarmManager.set(AlarmManager.RTC_WAKEUP, milli, pi); 时会显示通知。此外,通知设置为原始时间,即 2 点钟,而不是在其持续时间增加 15 分钟之后。

请帮忙,我尝试了很多方法在不同的地方调用这个函数,比如在第一个警报被触发之后,但都是徒劳的。

最佳答案

PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,0, intent, 0);

你这行有问题。如果你想同时触发两个警报,那么你应该这样做

PendingIntent sender =       PendingIntent.getBroadcast(AlarmController.this,giveUniqueRequestIdsHere, intent, 0);

关于android同时设置多个闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5549974/

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