Android - 通知 PendingIntent 转到错误的 Activity?

标签 android android-activity notifications android-pendingintent

我目前有一个通知显示在通知栏中,当用户单击它时,它应该将他们带到我的应用程序的根 Activity。

当用户从应用程序屏幕或主屏幕按下应用程序图标时,我在 list 中使用了 android:finishOnTaskLaunch ="true"和 android:clearTaskOnLaunch="true"来实现此目的。用户始终会按预期进入根 Activity。

但是,当我使用通知中的以下代码时,用户会被带到他们所在的最后一个屏幕,而不是 StartActivity 的根 Activity 。

有人知道我做错了什么吗?

   Intent notificationIntent = new Intent(this, StartActivity.class);
   contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
   notification.setLatestEventInfo(getApplicationContext(), getString(R.string.notification_app_name), notificationText, contentIntent);
   mNotificationManager.notify(1, notification);

添加这些标志有帮助,但重新启动后仍然不起作用:

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

当我重新启动应用程序时,我设置了一个正在运行的服务,该服务会弹出通知,当我这样做时,通知会恢复到原来的不良行为。

已解决:

通过将此标志添加到我的通知的 contentIntent 中解决了该问题 - Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED。

这里是一个链接,其中包含有关该地区的一些精彩信息Google dev group

最佳答案

尝试这 2 个属性

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  

关于Android - 通知 PendingIntent 转到错误的 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257208/

相关文章:

android - OkHttp Mock Web Server 和 Retrofit Mock 的区别

ios - 使应用通知名称与应用名称不同

android - 仅当上一个通知已被取消时才显示通知

android - 同一 Activity 中的多个 android-menudrawer

android - 短信接收没有通知android 4.4.2

android - 位图大小超出 VM 预算在 android 中

android - 如何检测是否有任何 native 应用程序在 android 中启动

android - 如何处理 Android Room 和 RxJava2 没有结果?

android - Android 应用程序的 Activity 和 View 设置 - 我应该为每个页面创建新 Activity 吗?

android - startActivityForResult() 不适用于外部 Activity