0

Я пытаюсь запустить мероприятие при нажатии push-уведомления. Интересно, когда приложение закрыто, и никакая активность не находится в фоновом режиме, и я получаю нажатие, я нажимаю на него и открывается требуемая активность. Но когда открываются какие-либо действия приложения, и я получаю нажатие, щелчок по нему ничего не делает. Я попробовал разные комбинации. Также put exported = true при запуске.Android Pushnotification, ничего не делает на клике, когда внутри приложение

Вот мой код:

private static void showNotification(Context context,String title,String text,Intent openIntent) 
{ 


    PendingIntent pi = PendingIntent.getActivity(context, 0, openIntent, PendingIntent.FLAG_CANCEL_CURRENT|PendingIntent.FLAG_ONE_SHOT); 

    // Resources r = getResources(); 
    final Notification notification = new NotificationCompat.Builder(context) 
      .setTicker(title) 

      .setSmallIcon(R.drawable.notif_icon) 
      .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), 
        R.drawable.notif_icon)) 
      .setContentTitle(title) 
      .setContentText(text) 
      .setContentIntent(pi) 
      .setDefaults(Notification.DEFAULT_SOUND|Notification.DEFAULT_LIGHTS|Notification.DEFAULT_VIBRATE) 
      .setAutoCancel(false) 
      .build(); 

    // also tried .setAutoCancel(true) above instead of cancel 
    notification.flags |= Notification.FLAG_AUTO_CANCEL; 


    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      notificationManager.notify(0, notification); 
     } 
    },1000); 


} 

Теперь, что сочетание я должен попробовать? Удалить флаги CANCEL_CURRENT или FLAG_ONE_SHOT? Пробовал уже. Даже без этих двух флагов не было результата при нажатии уведомления.

Я запускаю приложение на android 5.1/5.0. Я прочитал, что есть проблемы в уведомлении об этих версиях Android. Поэтому я уже пробовал решения вроде android: exported = true и FLAG_CANCEL current. Но не имеет никакого эффекта.

Теперь, как сделать уведомление, щелкнуть мышью и открыть запланированную операцию?

Любая помощь приветствуется. Thanks

ответ

0

Используйте FLAG_UPDATE_CURRENT вот так. его работа для меня

PendingIntent.getActivity(context, 0, openIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
-1
/*I tried this code on asus zenfone 2 (android 5.0), it is working without any problem please try this.*/ 
private void pushNotificationWithClickAction(String mainTittle,String subTittle,Intent intent){ 
     PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); 
     Notification noti = new NotificationCompat.Builder(this) 
       .setContentTitle(mainTittle) 
       .setContentText(subTittle) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentIntent(pIntent).build(); 
     noti.flags |= Notification.FLAG_AUTO_CANCEL; 
     NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
     notificationManager.notify(0, noti); 
    } 
+0

Хорошо, я дам ему попробовать, и вы знаете, если она работает. –

+0

Я пробовал свой код, но тот же результат. Он работает один или два раза, а затем он просто не работает. То же самое происходит с моим кодом. Он открывает активность один или два раза, а затем я перемещаюсь в приложение и выхожу из него. И снова заходите на домашнюю страницу, и она перестает работать. Щелчок не работает. Но сегодня я заметил, что эта строка показана при отладке, когда я нажимаю кнопку «push», и ничего не происходит: startActivity вызывается из контекста без активности; принудительный Intent.FLAG_ACTIVITY_NEW_TASK для: Intent {cmp = com.mypackage/.Activities.ChatDetailActivity –

Смежные вопросы