我在通知 Intent 方面遇到了麻烦。我有一个创建通知的服务(服务检查消息并创建通知)。应用程序有一个操作栏,用户可以通过滑动菜单在 Activity 之间导航。
当用户单击通知时,它会在当前 Activity 上打开一个新 Activity 。(就像一个独立的新实例)。我想在同一实例中打开它们,就像用户手动导航一样(例如在 B Activity 上单击 A)
我当前的 Activity 启动模式是标准的(尽管我尝试了singleTop和singleTask和flags)
当前通知代码:
Intent i = null;
i = new Intent(this, MessagesListActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,i, 0);
Builder notificationBuilder = new NotificationCompat.Builder(this);
notificationBuilder.setContentTitle(title);
notificationBuilder.setContentText(msg);
notificationBuilder.setSmallIcon(R.drawable.speech_bubble_orange);
notificationBuilder.setContentIntent(contentIntent);
notificationBuilder.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification notification = notificationBuilder.build();
notificationManager.notify(Constants.UNREADMESSAGESNOTIFICATIONID,notification);
感谢您的帮助。
最佳答案
我解决了这个问题。通过这种组合,新启动的 Activity 可以清除堆栈。我也没有更改启动模式(仍然是标准的)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
关于java - Android 通知在现有 Activity 上打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25559433/