Der schwierige, aber richtige Weg, dies zu tun, besteht darin, Ihren eigenen benutzerdefinierten ContentProvider
zu erstellen für Ihre App und aktualisieren Sie alle von Webdiensten und Push-Benachrichtigungen empfangenen Daten auf diesen ContentProvider
. Wenn die Activity
wieder in den Vordergrund kommt, aktualisiert er sich mit den neuen Daten, die vom ContentProvider
bereitgestellt werden .
Es ist schwer weil ein benutzerdefinierter ContentProvider
erstellt wird ist viel arbeit. Es ist das Richtige Weise, weil es mit dem Verhalten mobiler Anwendungen und der Android-Architektur übereinstimmt:Angenommen, ein Benutzer aktiviert einen Webdienst oder eine rechenintensive Aufgabe und schließt dann die App; oder sagen Sie, eine Push-Benachrichtigung kommt und erfordert, dass die Daten der App aktualisiert und angezeigt werden. In beiden Fällen die Activity
der App s darf nicht mehr im Vordergrund stehen, sondern ein Service
kann verwendet werden, um einige Nicht-UI-Operationen auszuführen. Nun, am Ende dieser Operation, der Service
nimmt Änderungen an den Daten durch den ContentProvider
vor , und wenn der Benutzer die App erneut aktiviert, die Activity
s erhalten ihre neuen Daten vom ContentProvider
.
Um das offizielle Tutorial zu zitieren:
Inhaltsanbieter sind die Standardschnittstelle, die Daten in einem Prozess mit Code verbindet, der in einem anderen Prozess ausgeführt wird.
Als Entwickler sollten Sie immer davon ausgehen, dass der Benutzer eine App jederzeit aufrufen und jederzeit schließen kann. Unabhängig davon, ob eine Activity
im Vordergrund steht oder nicht, müssen die Daten der App korrekt aktualisiert und gepflegt werden.
Die eigenen Apps von Google verwenden benutzerdefinierte ContentProvider
s. Das Gmail
App nutzt insbesondere ihren ContentProvider
um neue E-Mails zu erhalten, wenn eine Netzwerkverbindung verfügbar ist, und um E-Mails offline anzuzeigen. Das Facebook
, WhatsApp
&Twitter
Auch Android-Apps nutzen ContentProvider
s.