Android - менеджер уведомлений, имеющий уведомление без намерения - PullRequest
37 голосов
/ 12 августа 2011

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

Я пытался передать NULL для намерения

String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns);

int icon = R.drawable.icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();

Notification notification = new Notification(icon, tickerText, when);

CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";

notification.setLatestEventInfo(context, contentTitle, contentText, null);
mNotificationManager.notify(HELLO_ID, notification);

Ответы [ 3 ]

76 голосов
/ 12 августа 2011

Вы можете передать параметр

PendingIntent.getActivity(getApplicationContext(), 0, new Intent(), 0)

вместо

null

при

notification.setLatestEventInfo(context, contentTitle, contentText, null);

9 голосов
/ 12 августа 2011

Последний параметр в setLatestEventInfo() является PendingIntent, а не Intent. Если вам нужно, чтобы уведомление ничего не делало при нажатии, передайте пустой PendingIntent, что делается следующим образом: PendingIntent.getActivity (context, 0, null, 0).

1 голос
/ 12 августа 2011

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

...