java - Android 通知在现有 Activity 上打开

标签 java android android-activity notifications

我在通知 Intent 方面遇到了麻烦。我有一个创建通知的服务(服务检查消息并创建通知)。应用程序有一个操作栏,用户可以通过滑动菜单在 Activity 之间导航。

/image/YJXe6.png

当用户单击通知时,它会在当前 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/

相关文章:

java - 如何删除阿拉伯语主题标签?

java - 为什么在使用 String.valueOf 或 Float.toString 时此循环会变成无限循环?

android - Android 上 Google 登录的 403 响应

java - 如何使用 Smack 通过 XMPP 设置/获取配置文件数据

java - 在 Activity 之间传递自定义对象

android - 如何使用 AppCompat v.7 显示和隐藏 ActionBar

java - 获取抽象类、接口(interface)和扩展类以实现没有通配符的泛型时出错

java - 支持字母表的 24 小时制的正确正则表达式是什么 (java)

java - 如何获取任何网站的 JSON 数据以在我的 android native 应用程序中解析和使用

android - 如何从 MenuItem 导航到 fragment (Android)?