2016-07-26 10 views
-1

Ich habe meine Android App. Meine Anforderung ist, dass es alle eingehenden Nachrichten aus dem Posteingang lesen, sie anhand einiger Kriterien filtern und die gefilterten SMS in der SQLite-DB der App beibehalten soll. All dies sollte passieren, auch wenn die App geschlossen ist, d. H. 24 * 7Wie liest und behalte ich alle neuen eingehenden SMS-Daten, selbst wenn App in Android geschlossen ist?

Bitte schlagen Sie einige gute Weg, die weniger Leistung Auswirkungen auf Android-Batterie und Speicherverbrauch haben sollte.

+0

Wenn Sie einen minimalen externen Batterieverbrauch wünschen, dann [den Posteingang abfragen] (http://stackoverflow.com/questions/848728/how-can-i-read-sms-messages-from-the-inbox- programmatically-in-android), wenn der Benutzer Ihre App ausführt und dann die benötigten Nachrichten auf einmal in der App-Datenbank speichert. Wenn Sie wirklich Nachrichten erhalten müssen, wie sie ankommen, dann registrieren Sie einen entsprechenden Empfänger in Ihrem Manifest, wie in [dieser Beitrag] (http://stackoverflow.com/questions/7089313/android-listen-for-incoming-sms- Nachrichten), und speichern Sie die eingehende Nachricht auf diese Weise. –

Antwort

0

Registrieren Sie einen Broadcast-Empfänger, der auf eingehende Nachrichten wartet. Und in der OnReceive-Methode des Broadcast Receivers starten Sie diese db-Operation in einem separaten Dienst (vorzugsweise Intent-Dienst).

Beginnen Sie nicht mit der Verarbeitung der SMS in onReceive-Methode. Tun Sie dies, indem Sie einen neuen Dienst starten, der seine Aufgabe der Verarbeitung erledigt und sich selbst stoppt.