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()使用して を取得しようとしましたが、getIntent()エクストラはありません。アプリがまだ実行されていないときにエクストラを取得する方法はありますか?

私の活動はすべてsingleTopです。

4

1 に答える 1

0

インテントにいくつかのアクションを設定してみてください:

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

次に、onCreate で Extras を取得します。

PendingIntent.FLAG_UPDATE_CURRENTで置き換えてみることもできます0

于 2013-10-29T19:25:41.640 に答える