私はイベント アプリケーションを作成しており、ユーザーは必要なイベントのリマインダーを設定できます。そこで、alarmManager を使用してアラームを作成します。アプリケーションによって作成されたすべてのアラームをキャンセルできるように、メイン アクティビティにすべてキャンセル オプションを追加したいと考えています。同じ目的でアラームをキャンセルする通常の方法は、アラームをキャンセルしたいアクティビティとは異なるアクティビティに設定するため、実際には役に立ちません。アプリケーションによって作成されたすべてのアラームをキャンセルする方法はありますか? ありがとう!
3426 次
1 に答える
2
キャンセルを実行するコードは、アラームの発信元である必要はありません。コードは、アラームを作成した PendingIntent を特定することで、キャンセルするアラームを特定します。次のようにして、オリジナルの複製を「製造」できPendingIntent
ます。. .
String pname = this.getPackageName();
// manufacture an appropriate context
Context mycontext = null;
try {
mycontext = createPackageContext(pname,CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {
// handle exception here
e.printStackTrace();
}
// and generate a pendingintent
PendingIntent pi = PendingIntent.getService(mycontext,
0, new Intent(mycontext, myalarmreceiver.class), 0);
// Now use alarmmanager to terminate the alarm
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.cancel(pi);
これはあなたの状況ではうまくいかないかもしれませんが、このアプローチを試したことがない場合は、始めるのに適した場所かもしれません!
于 2010-06-29T03:11:14.223 に答える