Изменить намерение уведомления в Android

У меня есть служба, которая показывает уведомление, которое я хочу, чтобы я мог переходить к определенной активности моего приложения каждый раз, когда пользователь нажимает на него. Обычно это будет последний, который показал пользователь, но не всегда.

Если действие было начато ранее, оно должно вернуться к нему, а если нет, оно должно открыть его внутри задачи приложения, добавив его к задачам деятельности.

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

Как я могу это сделать? Возможно ли это без создания нового уведомления и отклонения предыдущего? Это также возможно без создания новой задачи или экземпляра действия?

 android developer08 июн. 2012 г., 22:23
я всегда стараюсь извините, если это не так.

Ответы на вопрос(2)

Решение Вопроса

Вы можете запустить Activity в вашем стеке задач, который не является проблемой, ознакомьтесь со службой уведомлений в руководстве здесь:

http://blog.blundell-apps.com/notification-for-a-user-chosen-time/

Вы должны установить ожидающее намерение в уведомлении:

        // The PendingIntent to launch our activity if the user selects this notification
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, SecondActivity.class), 0);

        // Set the info for the view that shows in the notification panel.
        notification.setLatestEventInfo(this, title, text, contentIntent);

Вы видите, что ожидающее намерение принимает нормальное намерение & quot;new Intent(this, SecondActivity.class& Quot; поэтому, если вам нужно определенное поведение (например, доведение до вершины вместо начала нового действия. Добавьте флаги, как обычно, для этого намерения. Т.е.FLAG_ACTIVITY_REORDER_TO_FRONT (что-то вроде того)

вы можете создавать уведомления с помощью Notification.Builder. Библиотека поддержки v4 имеет эквивалентный класс NotificationCompat.Builder.

Вы не можете изменить действие после того, как отправили уведомление, но вы можете обновить уведомление с новым намерением. Когда вы создаете PendingIntent, используйте флаг FLAG_CANCEL_CURRENT. При отправке нового уведомления используйте идентификатор существующего уведомления при вызове NotificationManager.notify ().

Кроме того, вы должны быть осторожны при запуске приложения. Руководство по уведомлениям в строке состояния расскажет вам, как настроить задний стек.

Ваш ответ на вопрос