2017-05-29 5 views
-2

Ich bin neu bei Android. In meiner App gibt es einige Aktivitäten mit Listenansichten/ExpandableListViews, die von relevanten Cursorn gefüllt werden. Ich habe auch einen Intentservice, der meine App DB mit einem Server im Netz synchronisiert.Aufruf einer Methode einer Aktivität aus einem anderen Thread

Ich möchte eine Methode der aktuellen Vordergrundaktivität vom Dienst aufrufen, die die Listenansichten aktualisieren würde. Wenn meine App nicht läuft, sollte sie diese Methode natürlich nicht aufrufen, da die Listen die aktualisierten Daten beim nächsten Start der App standardmäßig anzeigen würden.

Meine Frage ist,

  1. Wie kann ich wissen, ob mein app läuft?
  2. Wie kann ich die aktuelle Vordergrundaktivität erhalten, wenn meine App läuft?
  3. Wie kann ich die Methode aufrufen, wenn meine Aktivität ausgeführt wird?

Vielen Dank im Voraus :)

+1

Verwenden Sie BroadcastReciver in Ihren Aktivitäten. So können Sie Broadcast von Ihrem Dienst senden, und wenn eine Aktivität im Vordergrund ist, fängt sie diese Sendung ab. –

Antwort

0

Sie wissen können, wenn die App mit onResume läuft, OnStop, onCreate und so weiter ... Die Funktion tun, was gerade Sie wollen ... Setzen Sie neue boolean variable "playing", Setzen Sie in onCreate den Wert true. In der OnResume auch eingestellt, und onStop auf false gesetzt. Dann, wenn Sie es überprüfen müssen, ob es wahr oder falsch ist. Werfen Sie einen Blick hier: https://developer.android.com/guide/components/activities/activity-lifecycle.html

Für Ihre andere Frage können Sie brodcastReceiver verwenden und brodcast, zwischen der Aktivität und dem Dienst senden. How to send/receive broadcast between service and activity Schauen Sie sich die Frage und die Antwort an. Und Sie können sich auch dieses Tutorial ansehen: https://developer.android.com/guide/components/broadcasts.html Ich bin neu auf stackoverflow, sag mir, wenn ich etwas falsch gemacht habe ... Ich hoffe, ich habe geholfen! Viel Glück

0

EventBus Bibliothek ist für diese Art von Aufgaben optimiert, es vereinfacht die Kommunikation zwischen den Komponenten.

Verwandte Themen