これはよくある問題のようで、すでに見つけた関連するすべての質問を調べました: アクティビティが新しいインテントを取得していない、なぜ余分なデータ (整数) がアンドロイド通知インテントで送信されないのですか? 、通知は古いインテント エクストラを渡します。インテントのエクストラを通知に入れることはできません。android 保留中のインテント通知の問題です。しかし、まだこれを理解できません。
問題は同じです。追加情報を含む PendingIntent を使用して通知を設定しましたが、反対側でそれを取得できません。
通知を生成するコードは次のとおりです。
Notification notification = new Notification(R.drawable.icon, getResources().getString(R.string.notification_ticker), System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE;
Intent start_test = new Intent(this, MyActivity.class);
start_test.putExtra("start_test", true);
start_test.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), start_test, PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(this, getResources().getString(R.string.notification_title), getResources().getString(R.string.notification_content, expired), pi);
nm.notify(NOTIFICATION_ID, notification);
そして反対側では:
boolean start_test=getIntent().getBooleanExtra("start_test", false);
バンドルは実際にはありません (getExtras() は null を返します)。
PendingIntent.getActivity
( FLAG_UPDATE_CURRENT
、FLAG_CANCEL_CURRENT
、 )のさまざまなフラグを試しましたがFLAG_ONE_SHOT
、どれも役に立ちませんでした。
コードに示されているように、getCurrentMillis を使用して requestID が変更されていることを確認します。
また、MyActivity で、onCreate
呼び出さonNewIntent
れていないこともわかりました。のみonResume
です。がセットされているのにFLAG_ACTIVITY_NEW_TASK
…?
非常に単純なものが欠けていますか?