Android 点击通知栏,传递intent数据到已存在的activity

其实不是原创,是问郭神问来的.在此感谢郭霖. 以防自己忘记,也造福大家,每个人都去问郭神的话他也忙不过来,所以就写上来了.

activity已经存在,从通知栏点进去不希望这个activity重新创建,只是希望拿到intent带过来的数据的话, 重要的是添加的那一系列flag.

Intent intent = new Intent(NOTIFIER_NAME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Random random = new Random(System.currentTimeMillis());
int randomId = random.nextInt();
PendingIntent contentIntent = PendingIntent.getActivity(context, randomId, intent, PendingIntent.FLAG_CANCEL_CURRENT);
builder.setContentIntent(contentIntent);
notificationManager.notify(randomId, builder.build());

你可能感兴趣的:(Android)