gpt4 book ai didi

Android:从另一个 Activity 中取消闹钟设置

转载 作者:行者123 更新时间:2023-11-29 14:41:46 26 4
gpt4 key购买 nike

我会尽力解释这一点。基本上,我有 Activity 1 使用 ExternalClass 来做各种事情。 Activity 2 还引用了 Activity 1 的所述 ExternalClass 对象。从这两个 Activity 中,我可以使用 AlarmManager 设置警报,但我希望能够从 Activity 1 取消从任一 Activity 创建的所有警报。

所有警报都使用相同的 Intent 和相同的 AlarmManger 设置(均在 ExternalClass 中创建),但是当我在 Activity 1 中单击我应该调用 myAlarms.cancel(intent) 的按钮时,它只会取消已调用的警报使用 Activity 1 类创建。

ExternalClass 在 Activity 2 中通过引用在 Activity 1 中创建的那个类的对象来引用,因此它们应该都使用相同的 ExternalClass 实例。由于设置警报时使用的上下文,我很确定它不会取消警报,但我不知道如何解决这个问题。

最佳答案

为了解决这个问题,我使用了以下代码:

timerAlarmIntent = PendingIntent.getBroadcast(myContext, i, alarmIntent, 0);
ArrayList<PendingIntent> intentArray = new ArrayList<PendingIntent>();
intentArray.add(timerAlarmIntent);
myAM.set(AlarmManager.RTC_WAKEUP, alarmTime, timerAlarmIntent);

我将 requestCode 设置为唯一 ID。这是在一个 for 循环中,i 代表 0, 1, 2...

要取消警报,我必须将每个警报添加到列表中,并在我想取消所有警报时循环遍历列表。

private void cancelAlarms(){
if(intentArray.size()>0){
for(int i=0; i<intentArray.size(); i++){
myAM.cancel(intentArray.get(i));
}
intentArray.clear();
}

关于Android:从另一个 Activity 中取消闹钟设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061378/

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