Dies ist nur dann nützlich, wenn Sie eine Aktion ausführen möchten, sobald Ihre Aktivität beginnt, und wenn Sie überprüfen möchten, ob sich die App im Vordergrund oder im Hintergrund befindet.
Anstatt Activity Manager zu verwenden, gibt es einen einfachen Trick, den Sie über Code ausführen können. Wenn Sie den Aktivitätszyklus genau beobachten, ist der Fluss zwischen zwei Aktivitäten und Vordergrund zu Hintergrund wie folgt. Angenommen, A und B sind zwei Aktivitäten.
Beim Übergang von A nach B: 1. onPause () von A heißt 2. onResume () von B heißt 3. onStop () von A wird aufgerufen, wenn B vollständig wieder aufgenommen wird
Wenn die App in den Hintergrund tritt: 1. onPause () von A wird aufgerufen 2. onStop () von A wird aufgerufen
Sie können Ihr Hintergrundereignis erkennen, indem Sie einfach ein Flag in die Aktivität setzen.
Erstellen Sie eine abstrakte Aktivität und erweitern Sie sie von Ihren anderen Aktivitäten, sodass Sie den Code für alle anderen Aktivitäten nicht kopieren und einfügen müssen, wo immer Sie ein Hintergrundereignis benötigen.
In abstrakten Aktivitäten erstellen Flag isAppInBackground.
In der onCreate () -Methode: isAppInBackground = false;
In der onPause () -Methode: isAppInBackground = false;
In der onStop () -Methode: isAppInBackground = true;
Sie müssen nur in onResume () einchecken, ob isAppInBackground wahr ist. n Nachdem Sie Ihr Flag überprüft haben, setzen Sie erneut isAppInBackground = false
Beim Übergang zwischen zwei Aktivitäten wird onSTop () von first immer wieder aufgerufen, nachdem die zweite Aktivität wieder aufgenommen wurde. Das Flag ist niemals wahr. Wenn sich die App im Hintergrund befindet, wird onStop () der Aktivität unmittelbar nach onPause aufgerufen, und daher ist das Flag true, wenn Sie öffnen die App später.
Bei diesem Ansatz gibt es jedoch noch ein weiteres Szenario. Wenn einer Ihrer App-Bildschirme bereits geöffnet ist und Sie das Handy in den Leerlauf versetzen, wechselt das Handy nach einiger Zeit in den Ruhemodus. Wenn Sie das Handy entsperren, wird es beim Hintergrundereignis behandelt.