protected void displayNotification(String response) {
Intent intent = new Intent(context, testActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
Notification notification = new Notification(R.drawable.icon, "Upload Started", System.currentTimeMillis());
notification.setLatestEventInfo(context, "Upload", response, pendingIntent);
nManager.notify((int)System.currentTimeMillis(), notification);
}
Эта функция будет вызвана многократно. Я хотел бы за каждого notification
запустить testActivity при нажатии. К сожалению, только первое уведомление запускает testActivity. Нажатие на остальных заставляет окно уведомления минимизировать.
Дополнительная информация: Функция displayNotification()
находится в названном классе UploadManager
. Context
передается в UploadManager
от activity
это инстанцирует. Функция displayNotification()
назван многократно от функции, также в UploadManager, который работает в AsyncTask
.
Редактирование 1: Я забыл упоминать, что я передаю Строковый ответ в Intent intent
как extra
.
protected void displayNotification(String response) {
Intent intent = new Intent(context, testActivity.class);
intent.putExtra("response", response);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Это имеет большое значение, потому что мне нужен дополнительный "ответ" для отражения то, чем состоял в том Строковый ответ, когда уведомление было создано. Вместо этого использование PendingIntent.FLAG_UPDATE_CURRENT
, дополнительный "ответ" отражает то, к чему Строковый ответ был на последней возможности displayNotification()
.
Я знаю, почему это от чтения документации относительно FLAG_UPDATE_CURRENT
. Однако я не уверен, как работать вокруг этого в данный момент.
Не используйте Intent.FLAG_ACTIVITY_NEW_TASK
для PendingIntent.getActivity, используйте вместо него FLAG_ONE_SHOT
Скопировано из комментариев:
Затем установите какое-нибудь фиктивное действие для Intent, иначе дополнительные функции будут отброшены. Например
intent.setAction(Long.toString(System.currentTimeMillis()))
У меня была та же проблема, и я смог исправить ее, изменив флаг на:
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);