我想在用户按下推送通知时打开应用程序时打开另一个活动。
此活动需要在主要活动之上。因此,当用户按下通知时,堆栈应为:
活动A - >活动B.
现在我认为他们有两种情况:
所以我的问题是:我应该如何打开应用程序,显示一个新的活动,主要活动在其堆栈中。
以下代码仅在应用程序已经运行时才有效(因此主要活动已经在堆栈中)。
Intent notificationIntent = new Intent(this, ExtraActivity.class);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
notificationIntent.setAction(Intent.ACTION_MAIN);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, 0);
String appName = getResources().getString(R.string.app_name);
int icon = R.drawable.ic_launcher;
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(icon)
.setContentTitle(appName)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(message))
.setContentText(message);
mBuilder.setContentIntent(pendingIntent);
mNotificationManager.notify(uniqueId, mBuilder.build());
答案 0 :(得分:0)
试试这个
Intent intent;
manager = getPackageManager();
try {
intent = manager.getLaunchIntentForPackage(getApplicationContext().getPackageName());
if (intent == null)
throw new PackageManager.NameNotFoundException();
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
finish();
startActivity(intent);
}
catch (Exception e) {
}