Намерение уведомления Android уничтожает активность

Я пытаюсь использовать уведомления в своем приложении, но у меня возникла проблема с использованием следующего кода:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification)
        .setContentTitle("title")
        .setContentText("message");
        builder.setOngoing(true);
        Intent resultIntent = new Intent(this,StartActivity.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
        stackBuilder.addParentStack(StartActivity.class);
        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(
            0,
            PendingIntent.FLAG_UPDATE_CURRENT
        );
        builder.setContentIntent(resultPendingIntent);
        notificationManager.notify(1, builder.build());

Когда я возвращаюсь на домашний экран и нажимаю уведомление в строке состояния, StartActivity уничтожается и создается снова. Но я просто хочу, чтобы активность отображалась снова, как если бы в этот момент щелкнул значок запуска. Как я могу это изменить?

С уважением


person user2224350    schedule 23.12.2013    source источник


Ответы (2)


Попробуйте добавить

resultIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

Прежде чем создавать PendingIntent

Источник:

Как возобновить намерение уведомления, а не новое намерение?

person Gabe    schedule 23.12.2013
comment
Успокойся. источник: stackoverflow.com/questions/3305088/ - person Gabe; 24.12.2013

Следующее сработало для меня:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification)
        .setContentTitle("title")
        .setContentText("message");
        builder.setOngoing(true);
        Intent resultIntent = new Intent(this,NotificationActivity.class);///!!!!
        resultIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
        builder.setContentIntent(resultPendingIntent);
        notificationManager.notify(1, builder.build());

NotificationActivity — это специальный класс, который сразу же завершается в onCreate() и выводит задачу приложения на передний план. Источник: Уведомление о восстановлении задачи, а не определенного действия. ?

person user2224350    schedule 24.12.2013