2017-11-23 2 views
-1

Hallo, ich versuche, die Push-Benachrichtigung mit BroadcastReceiver anzuzeigen, es funktioniert gut, wenn die App minimiert ist, aber wenn die App geschlossen ist, kann ich die Push-Benachrichtigung nicht anzeigen.Android - Wie wird die PushNotification auch angezeigt, wenn die App beendet wird?

und meine Frage ist, was ist möglich Techniken oder Lösung, um die Push-Benachrichtigung anzuzeigen, wenn die App geschlossen ist?

unten ist der Code für die Benachrichtigung mit Rundfunkempfänger

public class Alarm extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     String message=intent.getStringExtra("message"); 
     String title=intent.getStringExtra("title"); 
     String click_action=intent.getStringExtra("click_action"); 
     notification(context,message,title,click_action,intent); 
    } 

    private void notification(Context context, String message, String title, String click_action, Intent intent) { 

     Toast.makeText(context, title + message + click_action, Toast.LENGTH_SHORT).show(); 
     if (click_action.equals("Time_LineActivity")) { 
      intent = new Intent(context, Time_LineActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     } else if (click_action.equals("MainActivity")) { 
      intent = new Intent(context, MainActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     } else { 
      intent = new Intent(context, MainActivity.class); 
      intent.addFlags(Intent.FLAG_FROM_BACKGROUND); 
     } 
     PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 
       PendingIntent.FLAG_ONE_SHOT); 

     Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 

     Notification.Builder notification = new Notification.Builder(context) 
       .setSmallIcon(R.mipmap.ic_launcher) 
       .setContentTitle(title) 
       .setContentText(message) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(0, notification.build()); 

    } 
} 

und unten ist mein FirebaseMessagingService Code

public class MyFirebaseMessagingService extends FirebaseMessagingService { 
    private static final String TAG = "MyFirebaseMsgService"; 
    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     Log.d(TAG, "From: " + remoteMessage.getFrom()); 
     Log.d(TAG, "Notification Message Body: " + remoteMessage.getData().get("title" +" "+"body" +" "+"click_action")); 
     String title=remoteMessage.getData().get("title"); 
     String message=remoteMessage.getData().get("body"); 
     String click_action=remoteMessage.getData().get("click_action"); 
     sendNotification(title,message,click_action); 
    } 
    private void sendNotification(String title, String message, String click_action) { 
     Intent broadcastedIntent=new Intent(this, Alarm.class); 
     broadcastedIntent.putExtra("message", message); 
     broadcastedIntent.putExtra("title", title); 
     broadcastedIntent.putExtra("click_action", click_action); 
     sendBroadcast(broadcastedIntent); 
    } 
} 

Vielen Dank im Voraus ..

+0

Mögliche Duplizierung https://stackoverflow.com/questions/24313539/push-notifications-when-app-is-closed – ChyperX

+1

Sie können das Firebase Cloud Messagin (FCM) -System verwenden, um eine Push-Benachrichtigung anzuzeigen, wenn die App geschlossen wird . Hier ist eine [tutorial] (https://www.simplifiedcoding.net/firebase-cloud-messaging-tutorial-android/) für die –

+0

ist implementiert, dass ich eigentlich diesen Broadcast-Empfänger aus dem FirebaseMessagingService nur aufgerufen habe, aber immer noch nicht ist funktioniert – Vignesh

Antwort

0

Ok Dank für Ihre wertvoller Kommentar Ich weiß, dass es mehrere Threads auf diesem Topi gibt Aber nichts hat für mich funktioniert, deshalb bin ich verrückt geworden.

und jetzt die Lösung:

es war Geck zu dem mobilen Managern App auf meinem Handy, und es hat die Möglichkeit, Auto-Start-Erlaubnis irgendeine Anwendung zu deaktivieren, und ich hinzugefügt in der Autostartliste und jetzt funktioniert es Gut. Ich habe das sogar in anderen Smartphones gesehen, um Xiaomi, Oppo, One Plus zu mögen. Das hat für mich funktioniert.

Verwandte Themen