[解決済み] 旧インテントエクストラの廃止を通達
2022-05-11 18:15:32
質問
このコードでBroadcastReceiverの中にnotificationを作成しています。
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);
int icon = R.drawable.ic_stat_notification;
CharSequence tickerText = "New Notification";
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
notification.defaults |= Notification.DEFAULT_VIBRATE;
long[] vibrate = {0,100,200,200,200,200};
notification.vibrate = vibrate;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
CharSequence contentTitle = "Title";
CharSequence contentText = "Text";
Intent notificationIntent = new Intent(context, NotificationActivity.class);
notificationIntent.putExtra(Global.INTENT_EXTRA_FOO_ID, foo_id);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
int mynotification_id = 1;
mNotificationManager.notify(mynotification_id, notification);
通知をクリックするとNotificationActivityが開き、Activityの中でIntent-Bundleからfoo_idを取得することができます(例:1)。
しかし、別の通知がトリガーされ、それを再度クリックすると、アクティビティは Intent-Bundle から "old" 値 (1) をまだ受け取ります。私はclear()でバンドルをクリアしようとしましたが、同じ効果を受け取っています。私は私のコードに何か間違っていると思います。
どのように解決するのですか?
保留中のインテンシブについて、同じリクエストコードを送信しています。 これを変更してください。
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
へ。
PendingIntent contentIntent = PendingIntent.getActivity(context, UNIQUE_INT_PER_CALL, notificationIntent, 0);
intentは同じparamを送った場合は作成されません。それらは再利用されます。
関連
-
Androidのadbデバイスがオフラインであることが判明
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
Google PlayデバイスはPlay保護機構の認証を受けていません。
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
Androidプロセス生存のためのソリューション
-
android bluetooth--Bluetooth on、検索、ペアリング、接続
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android端末にADBが接続できない!を解決。理由: デバイスが認証されていない!
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
Android のパッケージングに失敗し、Android リソースのリンクに失敗したことを示すプロンプトが表示される
-
アンドロイドスタジオのエラーを解決する --> Error:(1, 0) id 'com.android.application' を持つプラグインが見つかりません。
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
AndroidStudioのショートカット 検索/置換
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない
-
[解決済み】通知クリックからアクティビティにパラメータを送信する方法は?