Открытие из уведомления дает исключение NullException

#android #android-intent #push-notification #android-pendingintent

#Android #android-намерение #push-уведомление #android-pendingintent

Вопрос:

Я пытаюсь открыть свое приложение с помощью push-уведомления. Но у меня проблема, у меня есть 3 действия, действие, которое работает как средство запуска, и 2 других.

Когда я нажимаю на нажатие, если я делаю:

new Intent(this, ClientActivity.class) приложение открывается в том действии, которое работало ранее. То же самое, если приложение было на переднем плане или в фоновом режиме.

Проблема в том, что когда я нажимаю на уведомление, и приложение отключается, ClientActivity оно не загружается, поэтому приложение выдает Runtime Exception сообщение, потому ClientActivity что оно было там.

Как я могу узнать, какое действие выполняется в данный момент?

 Intent intent = new Intent(this, activityToOpen);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
if(pushTypeSecureSignature){
    intent.putExtra("PUSH_TYPE_SECURE_SIGNATURE", true);
}
pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, 0);
  

Комментарии:

1. Можете ли вы опубликовать свои журналы?

2. Отправьте исключение с помощью stacktrace из logcat в свой вопрос. Неясно, в чем ваша проблема.

Ответ №1:

Если вы хотите, чтобы щелчок мыши Notification просто выводил ваше приложение на передний план в любом состоянии, в котором оно находилось, когда оно переходило на задний план, тогда просто используйте это:

 Intent = PackageManager.getLaunchIntentForPackage("my.app.package.name")
  

Теперь оберните это Intent в a PendingIntent и поместите в свой Notification .

Это выведет ваше приложение на передний план (если оно запущено) в любом состоянии, в котором оно находилось. Если ваше приложение не запущено, это просто запустит корень Activity вашего приложения (то же самое, что происходит, когда пользователь нажимает на значок приложения на ГЛАВНОМ экране).