gpt4 book ai didi

java - Android 通知打开最后一个 Activity 而不是正确的 Activity

转载 作者:行者123 更新时间:2023-11-29 09:01:23 25 4
gpt4 key购买 nike

我遇到了一些问题,我找了很多地方似乎都找不到答案。

我有一项服务,该服务检查网站上的通知并提醒用户有新通知。当用户点击这个通知时,它应该将他们带到一个 Activity (我称之为 CommentActivity)

但是,如果我点击应用内的通知,什么也不会发生。如果我点击应用外的通知,它会打开应用关闭前显示的最后一个 Activity 。

这是我显示通知的代码:

        Notice n; //Notification from site

....
Intent nIntent = new Intent(Intent.ACTION_MAIN);
nIntent.setClass(getApplicationContext(), CommentActivity.class);
nIntent.putExtra("activity_id", n.getFeedID());
nIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, nIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);

NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(FlankNotificationService.this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle(n.getTitle())
.setContentText(n.getText())
.setContentInfo(arg0.getNotificationAmount() + " notification" + (arg0.getNotificationAmount() == 1 ? "." : "s."))
.setContentIntent(pIntent);

Notification mm = mBuilder.getNotification();

mm.flags = Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
mm.tickerText = n.getText();

....

mNM.notify(1558, mm);

因此,它不会打开 CommentActivity,而是恢复应用程序(如果应用程序未打开)或什么也不做(如果应用程序已打开)

谢谢。

编辑 1:

为 Intent 添加了 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT 标志。仍然没有解决问题。

编辑 2:

我找到了我的问题的原因(这是一个相当愚蠢的原因)。当 CommentActivity 启动时,如果它没有从 savedInstance 或 Intent.getExtra 传递任何数据,那么它就会关闭。之所以一开始没有想到这个,是因为它连过渡都没有显示出来。修复 Intent.getExtra 问题后,它现在可以工作了。谢谢大家的回答。

最佳答案

您可能想要添加 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT标记您的 Intent 。这将确保 CommentActivity 在处理 Intent 时是恢复的 Activity Activity。

关于java - Android 通知打开最后一个 Activity 而不是正确的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17247176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com