----
Service から notification を発行し、notification をタップした際に activityを起動、そのactivity に値を渡したかったので以下のようなコードを書いた。
Notification notification = new Notification(R.drawable.icon,"Some message",System.currentTimeMillis());
Notification notification = new Notification(R.drawable.icon,"Some message",System.currentTimeMillis());
Intent intent = new Intent(this, com.example.SomeActivity.class) ;
intent.putExtra("PARAM", 1) ;
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,intent,0);
notification.setLatestEventInfo(this.getApplicationContext(),"Some message","Some explanation",pendingIntent);
notificationManager.notify(mAppNo, notification);
受け側の activity では
Intent intent = getIntent();
someValue = intent.getIntExtra("PARAM", 0) ;
みたいな感じで値を取得しようと思ったら、取得できない。
というか、いつも同じ値になってしまう。
調べてみたところ PendingIntent を作るところで PendingIntent.FLAG_UPDATE_CURRENT
というフラグを指定してあげないと、古いものが再利用されるらしい。
第四引数を足して
PendingIntent pendingIntent = PendingIntent.getActivity(this,
0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
としたら、うまく受け渡しできるようになりました。
1時間ハマりました。
intent.putExtra("PARAM", 1) ;
PendingIntent pendingIntent = PendingIntent.getActivity(
notification.
notificationManager.notify(
受け側の activity では
Intent intent = getIntent();
someValue = intent.getIntExtra("PARAM", 0) ;
みたいな感じで値を取得しようと思ったら、取得できない。
というか、いつも同じ値になってしまう。
調べてみたところ PendingIntent を作るところで PendingIntent.FLAG_UPDATE_
というフラグを指定してあげないと、
第四引数を足して
PendingIntent pendingIntent = PendingIntent.getActivity(
0,intent,PendingIntent.FLAG_
としたら、うまく受け渡しできるようになりました。
1時間ハマりました。
コメントする