備忘録 〜プログラミング〜

プログラミングに関する事をつらつらと、、

Pending Intentの第二引数に注意

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 するときの注意

まだまだ勉強が足りないなと実感しました、、、