0

Ich versuche, eine Aktivität zu starten, wenn Push-Benachrichtigung geklickt wird. Interessanterweise, wenn die App geschlossen ist und keine Aktivität im Hintergrund ist und ich einen Push erhalte, klicke ich darauf und die gewünschte Aktivität wird geöffnet. Aber wenn eine Aktivität der App geöffnet wird, und ich einen Push erhalte, tut das Klicken nichts. Ich habe Diff-Kombinationen probiert. Setzen Sie exported = true auch auf die Startaktivität.Android Pushnotification, tut nichts auf klicken, wenn in der App

Hier ist mein Code:

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); 


} 

Nun, was Kombination sollte ich versuchen? Entfernen Sie die Flags CANCEL_CURRENT oder FLAG_ONE_SHOT? Ich habe es schon versucht. Auch ohne diese beiden Flags gab es beim Klick auf die Benachrichtigung kein Ergebnis.

Ich benutze die App auf Android 5.1/5.0. Ich habe gelesen, dass es Probleme in der Benachrichtigung auf diesen Android-Versionen gibt. Also habe ich schon die Lösungen wie Android: exported = true und FLAG_CANCEL aktuell ausprobiert. Aber ohne Erfolg.

Jetzt, wie die Benachrichtigung zu machen, klicken Sie auf Arbeit und öffnen Sie die beabsichtigte Aktivität?

Jede Hilfe wird geschätzt. Danke

Antwort

0

Verwenden Sie FLAG_UPDATE_CURRENT wie folgt. seine Arbeit für mich

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

Okay, werde ich es versuchen und lassen Sie wissen, ob es funktioniert. –

+0

Ich habe versucht, Ihren Code, aber das gleiche Ergebnis. Es funktioniert ein- oder zweimal und dann funktioniert es einfach nicht. Das Gleiche passiert mit meinem Code. Es öffnet die Aktivität ein- oder zweimal und dann gehe ich in die App ein und aus. Und wieder zur Startseite gehen und es funktioniert nicht mehr. Der Klick funktioniert nicht. Aber heute habe ich festgestellt, dass diese Zeile im Debug angezeigt wird, wenn ich auf den Push klicke und nichts passiert: startActivity von Nicht-Activity-Kontext aufgerufen; Forcing Intent.FLAG_ACTIVITY_NEW_TASK für: Intent {cmp = com.mypackage/.Activities.ChatDetailActivity –