0

私はこのように通知を設定しました:

public void onReceive(Context context, Intent intent) {
    nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    Bundle bundle = intent.getExtras();

    CharSequence from = bundle.getString("alarm_title");
    CharSequence message = bundle.getString("alarm_text");
    int notify_id = bundle.getInt("notify_id");

    Intent notifyIntent = new Intent(context, AppActivity.class);
    notifyIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notifyIntent, 0);

    Notification notif = new Notification(R.drawable.ic_menu_glases, "App Information", System.currentTimeMillis());
    notif.contentIntent = contentIntent;
    notif.setLatestEventInfo(context, from, message, contentIntent);
    notif.flags = Notification.FLAG_AUTO_CANCEL;

    nm.notify(notify_id, notif);  

}

すべてが正常に機能し、私はそれに満足しています。cancelIDによる通知をお願いします。

私の最初の試みは失敗しました(まだアラームが鳴っています):

AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getApplication(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplication(), notifyID, intent, PendingIntent.FLAG_ONE_SHOT);
if(pendingIntent != null) {
    am.cancel(pendingIntent);
    pendingIntent.cancel();  
}

そして2回目の試行も失敗しました:

NotificationManager nm = (NotificationManager) getApplication().getSystemService(Context.NOTIFICATION_SERVICE);
nm.cancel(notify_id);

一度設定したら通知を停止する方法を知っている人はいますか?ありがとうございました!

4

2 に答える 2

0

このコードを使用する

String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notify_id);

あなたのコードで私はに変更notifyIDしましたnotify_id。通知IDは、通知の作成時に使用したものと同じである必要があります。それを確認するだけで、 APIに記載されているように正常に動作するはずです。

于 2012-10-06T13:25:11.317 に答える
0

このコードを試してください:

String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager) getSystemService(ns);
mNotificationManager.cancel(MY_NOTIFICATION_ID);
于 2012-10-06T13:25:52.107 に答える