Ich mache eine Chat-App (nur zum Spaß). Ich verwende Pushy API zum Senden von Nachrichten zwischen zwei Benutzern. Nach dem in pushy.me verfügbaren Tutorial werden die Push-Nachrichten in einem Broadcast Receiver empfangen. Nun, dieser Teil funktioniert gut, aber jetzt mache ich ein Benachrichtigungssystem wie Whats App, das eine Benachrichtigungsleiste startet, wenn der Benutzer nicht im Chat ist.Nur Benachrichtigung, wenn Fragment sichtbar ist
Meine Idee ist folgende: Wenn das Chat-Fragment sichtbar ist, aktualisieren Sie einfach das Fragment mit LocalBroadcastManager sendBroadcast-Methode, sonst starten Sie eine Benachrichtigung.
Ich ist dies mit dem folgenden Code mit Erfolg machen:
if (!Utility.isAppInBg(context)) {
Intent chatPushNotification = new Intent(Constants.CHAT_PUSH_NOTIFICATION);
chatPushNotification.putExtra("chat", obj.toString());
LocalBroadcastManager.getInstance(context).sendBroadcast(chatPushNotification);
} else {
if (title != null && msg != null) {
NotificationUtil.notify(context, NOTIFICATION_ID, notifyIntent,
URLDecoder.decode(title, "UTF-8"), URLDecoder.decode(msg, "UTF-8"));
}
}
Das Problem ist, dass das Verfahren verwendet isAppInBg Activity mit getRunningAppProcesses() Methode, die abgeraten. Es gibt eine Möglichkeit, diese Methode durch eine andere zu ersetzen, die überprüft, ob ein Fragment sichtbar ist (denken Sie daran, dass diese Überprüfung in einem Broadcast-Empfänger erfolgt). Wenn nicht, gibt es einen besseren Ansatz?
Wow, so einfach und sauber! Klappt wunderbar! Vielen Dank! –