Ich habe die GCM-Notification-Implementierung. Ich weiß, dass die Client-Anwendung die Benachrichtigung erhält, ob es im Vordergrund, im Hintergrund oder im getöteten Zustand ist. Was ich gerne wissen würde, ist, wie kann ich meine Anwendung auf Benachrichtigung erhalten, wenn die Anwendung in den getöteten Zustand ist?Starten Sie die Anwendung, wenn die GCM-Benachrichtigung empfangen wurde
Antwort
Im Nachrichtenempfänger, ich folgendes: Aktivität
final Intent notificationIntent = new Intent(context, YourActivity.class);
notificationIntent.setAction(Intent.ACTION_MAIN);
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
Hier ersetzen YourActivity.class mit dem Eintrag. Das hat für mich funktioniert.
können Sie NotificationManager verwenden, um Ihre Aktivität zu starten.
versuchen Im Folgenden Code in Ihrer onMessage() Methode zu verwenden, die überschriebene Methode in der Klasse ist, die GCMBaseIntentService Klasse von GCM erstreckt.
int icon = R.drawable.your_app_icon;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
Intent notificationIntent = new Intent(context, YOUR_ACTIVITY.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// notificationIntent.putExtra("PostName", vPostText);
// Log.i(TAG, "Sent Postid " + postid);
// Util util = (Util) context.getApplicationContext();
// util.setPostID(postid);
// util.setNotify(true);
// util.setUserNAME(vPortCode);
// util.setPostNAME(vPostText);
// util.setmEDIA(vMedia);
// util.setmEDIATHHUMB(vMediaThumb);
// util.setmEDIATYPE(vMediaType);
// util.setAirportName(vAirportName);
notificationIntent.putExtra("Set_image", true);
notificationIntent.putExtra("Notify", true);
// set intent so it does not start a new activity
// notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
// notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
// | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(context,
(int) System.nanoTime(), notificationIntent, 0);
notification.setLatestEventInfo(context, title, message, intent);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify((int) System.nanoTime(), notification);
Vielen Dank.Ich weiß, wie Sie eine Aktivität aus der Anwendung starten. Aber, was ich tun möchte, ist, wenn meine Anwendung im Hintergrund ist, würde ich es in den Vordergrund, bringen, wenn es im Vordergrund ist, dann würde ich die Verarbeitung fortsetzen, und wenn meine Anwendung in ist der stop/killed state dann möchte ich "relaunch die anwendung" nicht aktivität. Also können Sie mir sagen, ob es eine Möglichkeit gibt, die Anwendung zu starten, wenn sich die Anwendung im Status Stop/Getötet bei Benachrichtigung befindet? – jasdmystery
@jasdmystery: Hast du etwas herausgefunden? Ich habe dasselbe Problem. – user836026
Siehe die Antwort oben. – jasdmystery
- 1. Starten Sie die Anwendung mit PM2, wenn startet Formular schlucken
- 2. Starten Sie die Anwendung mit modalen Login
- 3. Starten Sie die Chrome-Anwendung beim Start
- 4. Starten Sie die Android-Anwendung ohne Hauptaktivität und starten Sie den Dienst beim Starten der Anwendung
- 5. So starten/starten Sie die Anwendung beim Booten Android
- 6. Viele Nullen, die empfangen wurden, wenn cudaMemcpy() verwendet wurde
- 7. So ermitteln Sie die Benutzerrolle, die von der Datenbank empfangen wurde, wenn admin oder nicht
- 8. Starten Sie die WPF-Anwendung vom Nicht-UI-Thread aus
- 9. . NET-Anwendung automatisch neu starten, wenn die Konfiguration ändert
- 10. Starten der WPF-Anwendung über die Ausgabedatei
- 11. Wie NHibernate die Schemaänderung handhaben, wenn Anwendung ausgeführt wurde
- 12. Wie die node.js Anwendung starten PM2 mit
- 13. So starten Sie die Anwendung zu einer bestimmten Zeit
- 14. SecurityError Wenn die Ember-Anwendung in mehreren Buckets implementiert wurde
- 15. C# Starten Sie die Anwendung mit mehreren Argumenten
- 16. So starten Sie die Anwendung nach der Installation mit PackageMaker
- 17. So starten Sie AndroidMarket für die Bewertung meiner Anwendung
- 18. Starten Sie die Anwendung, bevor Windows Shell gestartet wird?
- 19. Wird die App Broadcast empfangen, wenn sie nicht gestartet wird?
- 20. Die Voip Pushkit-Benachrichtigung startet die App nicht neu, wenn sie zwangsweise beendet wurde und das Gerät neu gestartet wurde.
- 21. Wie Sie herausfinden, dass die Anwendung aktualisiert wurde
- 22. Finden Sie heraus, ob die Anwendung mit CeRunAppAtTime geplant wurde
- 23. Errno EMLINK empfangen, während die Funktion connect() verwendet wurde
- 24. Erhalte das Datum, an dem die Remote-Benachrichtigung empfangen wurde
- 25. Lassen Sie meine App starten, wenn der Geheimcode eingegeben wurde?
- 26. iphone: Starten Sie die Schleifenanimation neu, nachdem die Ansicht ausgeblendet wurde und dann wieder angezeigt wird.
- 27. Kein JIT-Debugger wurde beim Starten der Anwendung
- 28. Starten Sie die zweite Methode, nachdem die erste Methode mit Thread-Funktionalität beendet wurde C#
- 29. Starten Sie die externe App Android
- 30. Starten Sie die iPad-App erneut
Was ist, wenn die Anwendung bereits ausgeführt wird? – Ahmed
Was passiert, wenn die App aus der Aufgabenliste entfernt wird? In diesem Fall wird "Nachrichtenempfänger" nicht angerufen. Es wird nach System gehandhabt und es wurde mit dem Tag "click_action" geklickt. Aber meine Sorge ist offen meine Zielaktivität nach der Benachrichtigung angekommen. –
Wie bekomme ich hier Kontext in fcm Nachricht ?? –