0

繰り返しアラームを作成するアクティビティ(アラームの設定)があります。そのアラームを別のアクティビティ(キャンセルアラーム)からキャンセルする必要があります。アラームをキャンセルできません。私は何が間違っているのですか?:

public class settingalarm...

am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent alrm = new Intent(context, z.class);
alrm.setAction(ALARM);
alrm.putExtra(x, x);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, alrm, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, 0, 30000, alarmIntent);

既存のアラームをキャンセルする必要がある別のアクティビティがあります。

public class cancelingalarm...

am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent alrm = new Intent(context, z.class);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, alrm, 0);
am.cancel(alarmIntent);

前もって感謝します!

4

2 に答える 2

2

Intent作成したものと同等のものを使用する必要がありPendingIntentます。これは、同じアクションを設定することを意味します。ところで、明示的なインテント(クラス名を指定)を使用しているため、実際にはアクションを追加する必要もありません。

つまり、削除するalrm.setAction(ALARM);か、両方の場所で使用します。

于 2012-12-18T06:32:19.540 に答える
0

私は意図をグローバルにし、私のために働いています:-

private Intent alrm;


alrm = new Intent(context, z.class);
于 2012-12-18T06:32:15.560 に答える