11

我在 Android 中使用推送通知。当我收到推送通知时,如果应用程序仍在运行,我想打开它,否则它应该打开它的一个新实例。

我在用

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 
    Intent.FLAG_ACTIVITY_CLEAR_TOP | 
    Intent.FLAG_ACTIVITY_SINGLE_TOP | 
    Intent.FLAG_ACTIVITY_NEW_TASK);

但是当我现在收到推送通知并单击它时,什么也没有发生。

我怎样才能通过使用 flagIntents 来实现这一点?

4

3 回答 3

16

您需要在Intent. 您在调用中指定它们以获取PendingIntent. 试试这个:

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
    Intent.FLAG_ACTIVITY_SINGLE_TOP | 
    Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
    notificationIntent, 0);
于 2012-11-27T10:10:14.227 回答
1

在您的 Android Mainfest 文件中设置以下内容

android:noHistory="true"
 android:launchMode = "singleTop"
于 2015-03-06T19:36:26.477 回答
0

在我的情况下,每次单击推送通知时,正在运行的应用程序都会重新启动。但我不想重新启动应用程序。

PendingIntent我有一个名为 Activity2 的所需 Activity1 的意图。这些行中有一个错误:

val intent = Intent(context, Activity2::class.java)
// Remove this line:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
context.startActivity(intent)
于 2019-08-30T08:41:51.027 回答