2012-04-02 9 views
0

Ie Ich möchte wissen, wann Benutzer mit meiner Anwendung interagieren und wann nicht.Kann ich feststellen, wann eine Aktivität meiner App angezeigt wird und wann alle Aktivitäten schließen?

Ich habe versucht, es mit ActivityManager.getRecentTasks() zu tun. Ich habe die Root-Aktivität bei einer Hauptaufgabe überprüft, um einen Interaktiv-Benutzer mit meiner Anwendung zu finden.

Ich habe gezwungen, es in getrennten Thread jede zweite oder zwei zu überprüfen.

Dieser Weg ist schlecht für mich. Gibt es eine andere Möglichkeit festzustellen, wann eine Aktivität meiner App geöffnet oder geschlossen wird?

Antwort

0

Werfen Sie einen Blick auf die lifecycle einer Aktivität. Es gibt Callback-Methoden (onStart, onResume, onPause, onDestroy, ...), die vom System immer dann aufgerufen werden, wenn Ihre Aktivität erstellt, aktiv oder inaktiv wird. Sie könnten Ihre eigene Anwendungsklasse erstellen (einfach von android.app.Application erben) und dort Ihre Daten aufzeichnen. Die Anwendung wird ungefähr so ​​lang sein, wie Ihre App läuft. Zum Beispiel könnten Sie eine Flagge oder einen Zähler dort setzen und es aus den Callbacks der Aktivitäten setzen. Ein einfaches Beispiel dafür könnte sein:

public void onResume() { 
    super.onResume(); 
    ((MyApplication)getApplication()).active = true; 
} 

public void onDestroy() { 
    super.onDestroy(); 
    ((MyApplication)getApplication()).destroyed += 1; 
} 
Verwandte Themen