gpt4 book ai didi

java - 取消 PendingIntent |代码无效

转载 作者:搜寻专家 更新时间:2023-11-01 08:42:01 26 4
gpt4 key购买 nike

尝试使用 PendingIntent 禁用警报。然而代码似乎没有任何错误,但它不起作用。这是我所做的。

从一个 Activity 我发起了警报:

private void setAlarm(Calendar targetCal)
{
Intent alarmintent = new Intent(AddAlarm.this, AlarmReceiver.class);
alarmintent.putExtra("ALARM_NO", tempx);
alarmintent.setAction("my.action.string");
PendingIntent sender = PendingIntent.getBroadcast(AddAlarm.this, pen, alarmintent, PendingIntent.FLAG_ONE_SHOT);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), sender);


}

我试图从另一个 Activity 中关闭警报,但是这样做并没有产生所需的输出,而是在设定的时间播放了警报。这是代码:

public void alarmSet1(View view)
{

int a1=1;
int idTime = (int) System.currentTimeMillis();
Log.w("myApp", "SAVED VALUE IS:"+idTime);



if (((ToggleButton) view).isChecked()) {
Intent intent = new Intent(MainActivity.this, AddAlarm.class);
intent.putExtra("pendInt", idTime);
intent.putExtra("tts", a1);
startActivity(intent);
}

else
{


SharedPreferences sa = getSharedPreferences("TimesList", Context.MODE_PRIVATE);
int rec = sa.getInt("ID1",0);
Log.w("myApp", "RECEIVED VALUE IS:"+rec);


Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,
rec, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
pendingIntent.cancel();
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);

}
}

任何修复/解决方案将不胜感激:)

最佳答案

您不需要调用 pendingIntent.cancel(),只需调用 `alarmManager.cancel(pendingIntnet);'

当您删除警报并生成 myIntent 时,请在生成 pendingIntent 之前调用 myIntent.setAction("my.action.string")

关于java - 取消 PendingIntent |代码无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31707624/

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