2017-04-01 1 views
0

で保留中のインテントと通知を更新および削除する方法。問題は、私がそれを更新しようとしているときはいつも、インテントが識別されていないということです。コードへのリンクは以下の通りです:通知やインテントを更新しようとすると、望ましくない新しいものが作成されたときに、アンドロイド

https://gist.github.com/Kerron-Hutton/03799ac497128919225bbbd4efaffa25

+0

を助けますか?コード内の更新予定場所 – Remario

+0

またこの行data.getID()は、あなたが望むものであるかどうかをデバッグしてみてください。私はこのIDが – Remario

+0

を更新する鍵であることを意味しています。IDを渡していても、すべての通知IDを持つスタンドアロンクラスを作成し、インテントに基づいて呼び出します。これらの定数はパブリックであるstatic final – Remario

答えて

1
  1. PendingIntentを更新するには、それを作成する前に、あなたが使用したのと同じREQUEST_CODEを使用する必要があります。

    PendingIntent pIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    
  2. 既存PendingIntentを削除する/解除するには、あなたはPendingIntent.cancel()メソッドを使用することができます。

    PendingIntent.getBroadcast(context, REQUEST_CODE, intent, 
            PendingIntent.FLAG_UPDATE_CURRENT).cancel(); 
    
  3. Notificationを更新するには、あなたが更新するNOTIFICATION_IDNotificationManager.notify()メソッドを使用することができます。

    NotificationManager notificationManager= (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);  
    notificationManager.notify(NOTIFICATION_ID, notification); 
    

    通知idは、アプリケーション内で一意でなければなりません。同じidの 通知がすでに アプリケーションによって通知されていて、まだキャンセルされていない場合は、更新された情報 に置き換えられます。

  4. は、既存のNotificationを削除/キャンセルキャンセルしたいNOTIFICATION_IDでNotificationManager.Cancel()メソッドを使用します。

    notificationManager.cancel(NOTIFICATION_ID); 
    

希望これはまさにあなたのアップデートは、コードで行われている〜

関連する問題