2

我在 Android 中遇到了这个奇怪的通知问题。我正在以这种方式创建通知:

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Intent notificationIntent = new Intent(context, MyClass.class);
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        notificationIntent.putExtra("data", value);

        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        Notification updateComplete = new NotificationCompat.Builder(context)
                .setContentTitle(title)
                .setContentText(msg)
                .setTicker(title)
                .setWhen(System.currentTimeMillis())
                .setContentIntent(contentIntent)
                .setDefaults(Notification.DEFAULT_SOUND)
                .setAutoCancel(true)
                .setSmallIcon(R.drawable.icon_notifications)
                .build();

        notificationManager.notify(100, updateComplete);

当应用程序正在运行(或在后台)并且用户单击通知时,一切正常。onNewIntent被调用并且数据在附加中。但是当应用程序没有运行或在后台时,则onNewIntent()不会被调用。我试图intentonCreate()using中获得getIntent(),但它从来没有额外的东西。当应用程序尚未运行时,是否有额外的功能?

我的活动都是singleTop

4

1 回答 1

0

尝试根据意图设置一些操作:

notificationIntent.setAction(Long.toString(System.currentTimeMillis()));  

然后在 onCreate 中获取 Extras。

您也可以尝试替换PendingIntent.FLAG_UPDATE_CURRENT0.

于 2013-10-29T19:25:41.640 回答