Android - Java.lang.LigalargumentException: Contentintent Обязательная ошибка, вызванная уведомлением?

StackOverflow https://stackoverflow.com/questions/3112008

Вопрос

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

Однако иногда я получаю следующую ошибку, когда уведомление должно быть обновлено

java.lang.IllegalArgumentException: contentIntent required

Вот мой код:

Переменная установка


int icon = R.drawable.notification;
CharSequence tickerText = "Test";
long when = System.currentTimeMillis();
PendingIntent contentIntent;

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

NotificationManager mNotificationManager;

Создание NotificationManager


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

Создание уведомлений


    Intent notificationIntent = new Intent(this, TestsApp.class);
    contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.flags |= Notification.FLAG_NO_CLEAR;
    notification.icon = R.drawable.notification3;
    notification.setLatestEventInfo(this, "Registering", "Test", contentIntent);
    mNotificationManager.notify(1, notification);

Обновление уведомления


    notification.icon = R.drawable.notification2;
    notification.setLatestEventInfo(getApplicationContext(), "Registered", "Test", contentIntent);
    mNotificationManager.notify(1, notification);   

Так что-то происходит, мой докладчик где-то вдоль линии, это будет правильно?

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

Это было полезно?

Решение

Вам нужно установить Contentintent для вашего уведомления.

в твоем случае:

notification.contentIntent = notificationIntent;

В противном случае вы получите сообщение, что Contentintent из уведомления является NULL, потому что он не установлен.

Docu здесь: http://developer.android.com/reference/android/app/notification.html#contententent.

У меня есть небольшой пример здесь: http:///united-coders.com/no-heid/show-progressbar-in-notification-area-like-Igrogle-does-Chenloading-from-rom- android.

Другие советы

Я думаю, что это потому, что версия Android OS

Версия 2.3 или нижедолжен установить ContentIntent.Если нет, вы получите это исключение.

В моем проекте я пишу так:

if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) { Intent intent = new Intent(); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, 0); mNotification.contentIntent = contentIntent; }

Возможно, это может помочь вам!

В твоем случае

contentintent = pendingIntent.getactactive (это, 0, уведомление, 0);

Если вы хотите использовать Intents с тем же действием, но разные дополнения:

1) Изменить

requestCode

по умолчанию "0" в

getActivity (Context context, int requestCode, Intent intent, int flags)

к чему-то уникальному как `

(int) System.currentTimeMillis();

` 2)

Уведомление.

Оба шага являются обязательными, потому что:

  • Вариант 2 не будет работать без варианта 1.
  • Вариант 1 бросит неthaugalarGumentException без 2.

В моем случае у меня был пример код, с одним уведомлением для создания, и я также получил ошибку «Contentintent» - Google привел меня к этой теме: D

Источником этой проблемы были цитаты, которые я скопировал из примерного кода и вставил его в проекте Eclipse. Когда я удалил «» и набрал их назад, и проблема была решена. Может быть, это помогает кому-то.

Это были цитаты источника ошибки:NB.SetContentTitle («Мое первое уведомление!»); nb.setcontentText («Hello»);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top