gpt4 book ai didi

android - 如果存在 Activity ,则将通知置于最前面,否则创建

转载 作者:行者123 更新时间:2023-11-30 02:57:47 25 4
gpt4 key购买 nike

我正在用android创建messenger,收到的每条消息都会显示通知,当应用程序收到某人的消息时会调用这个方法,内容是来自 friend 的消息,标题是 friend 的名字,每个人都有ID,并且我还将 Friend ID 传递给 FriendID 参数。

public static void CreateNotify(Context context, String Content, String title, String FriendID) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setLargeIcon(icon)
.setContentTitle(title)
.setContentText(Content)
.setLights(Color.BLUE, 1000, 500)
.setAutoCancel(true);

Intent resultIntent = new Intent(context, Messenger.class);
resultIntent.putExtra("ID", FriendID);
int mNotificationId = FriendID.hashCode();
PendingIntent resultPendingIntent = PendingIntent.getActivity(context, mNotificationId, resultIntent, PendingIntent.FLAG_CANCEL_CURRENT|Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

resultIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

mBuilder.setContentIntent(resultPendingIntent);

NotificationManager mNotifyMgr = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotifyMgr.notify(mNotificationId, mBuilder.build());
}

一切正常,但是如果我的 friend (A) 向我发送消息,我会看到通知,我点击它会显示 Messenger Activity ,在这种状态下,我的 friend (B) 向我发送消息,我点击通知我会看到 Messanger我的(B) friend ...现在,当我的 friend (A) 向我发送新短信时,通知中会显示来 self (A) 的通知,当我单击它时,Messenger Activity 将创建新的并向我显示...我不想创建新实例,而是将 Messenger (A) 的最后一个实例放在前面

最佳答案

this question 中找到了一些很好的答案.简而言之,一个好方法是添加到您的 list

<activity 
...
android:launchMode="singleTask" >

这确保只有一个 Activity 副本在运行,并将其置于最前面。根据您的目标,您可能还想使用 Intent 下可用的一些标志。

关于android - 如果存在 Activity ,则将通知置于最前面,否则创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23012453/

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