gpt4 book ai didi

java - 单击通知图标时仅显示一次 Activity

转载 作者:行者123 更新时间:2023-11-30 04:19:51 45 4
gpt4 key购买 nike

我有一个应用程序可以通过某种提醒来提醒用户。这些提醒显示为通知。当用户单击这些通知中的任何一个时,它应该显示有关该警报的其他信息。这基本上是通过调用具有特定参数的 Activity 来完成的。

这是我的做法:

NotificationManager mNotificationManager = (NotificationManager) MyApplication.getContext().getSystemService(Context.NOTIFICATION_SERVICE);                 
Notification notification = new Notification(R.drawable.reminder2, reminder.Title, System.currentTimeMillis());

Intent notificationIntent = null;
notificationIntent = new Intent(MyApplication.getContext(), ReminderActivity.class);
notificationIntent.putExtra("idnotification", reminder.ID);


PendingIntent contentIntent = PendingIntent.getActivity(MyApplication.getContext(), reminder.ID, notificationIntent, 0 );

notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.defaults |= Notification.FLAG_INSISTENT;


notification.setLatestEventInfo(MyApplication.getContext(), "Reminder", reminder.Title, contentIntent);

mNotificationManager.notify(reminder.ID, notification);

这似乎可行,问题是如果我多次点击通知,它会创建一个新 Activity ,而不是显示已经可见的 Activity 。

我尝试为 PendingIntent 设置标志,但没有成功。我尝试使用 FLAG_CANCEL_CURRENT、FLAG_NO_CREATE、FLAG_ONE_SHOT、FLAG_UPDATE_CURRENT。唯一接近我需要的是 FLAG_ONE_SHOT,但我第二次点击它时没有显示 Activity 。

我还能尝试什么?我在这里完全没有想法。谢谢

最佳答案

Manifest 中,将 ActivitylaunchMode 设置为 singleTop。如果这不起作用,请尝试 singleInstance。我认为其中一种可能更适合您。

如果这不起作用,请尝试弄乱 Intent 的一些标志:

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)

我会尝试使用以下标志来查看哪些有效,甚至可能使用多个标志:

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_NEW_TASK (in conjunction with others)

可以查看更多详情here在所有标志上(在 Summary、Contstants... 下,然后是所有以 FLAG_ACTIVITY 开头的标志)。如果我的建议不起作用,我想您仍然可以在文档中找到答案。

关于java - 单击通知图标时仅显示一次 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9437423/

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