AndroidでPush通知を実装するときに、通知をタップしたときにActivityを呼ぶという実装をしたのですが、タップしてもActivityが起動しないという事が起きたのでメモしておきます。
Intent intent = new Intent(context, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); NotificationCompat.Builder builder = new NotificationCompat.Builder(context); builder.setContentTitle(context.getString(R.string.app_name)); builder.setContentText(message.getAlert()); builder.setContentIntent(pendingIntent); builder.setSmallIcon(R.drawable.icon); builder.setAutoCancel(true);
こんな感じの実装。
では、起動しない事があるみたいです。
この第二引数部分
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
を、こうする
PendingIntent pendingIntent = PendingIntent.getActivity(context, 777, intent, PendingIntent.FLAG_UPDATE_CURRENT);
数字は、何でも大丈夫のようですが、sender 用のプライベートな request codeとの事ですね。
これを参考にさせてもらいました。
AndroidのPendingIntentで気を付けるべき事 | 9ensanのLifeHack
Y.A.M の 雑記帳: Android AppWidget の PendingIntent で putExtra するときの注意
まだまだ勉強が足りないなと実感しました、、、