0
I.e我想知道用戶何時與我的應用程序進行交互,什麼時候沒有。有什麼方法可以檢測我的應用程序的任何活動何時顯示以及何時所有活動正在關閉?
我試着用ActivityManager.getRecentTasks()來做。我檢查了頂級任務的根活動,以檢測與我的應用程序交互的用戶。
我不得不每隔一兩秒鐘檢查一次。
這種方式對我不利。還有另一種方法來檢測我的應用程序的任何活動何時打開或關閉?
I.e我想知道用戶何時與我的應用程序進行交互,什麼時候沒有。有什麼方法可以檢測我的應用程序的任何活動何時顯示以及何時所有活動正在關閉?
我試着用ActivityManager.getRecentTasks()來做。我檢查了頂級任務的根活動,以檢測與我的應用程序交互的用戶。
我不得不每隔一兩秒鐘檢查一次。
這種方式對我不利。還有另一種方法來檢測我的應用程序的任何活動何時打開或關閉?
查看活動的lifecycle。 有一些回調方法(onStart, onResume, onPause, onDestroy
,...),只要您的活動被創建,變爲活動或非活動狀態,系統就會調用它們。 您可以創建自己的應用程序類(只從android.app.Application
繼承)並在那裏進行跟蹤。只要您的應用程序正在運行,應用程序就會一直存在。 例如,您可以在那裏放置一個標記或計數器,並從活動的回調中設置它。一個簡單的例子可能是:
public void onResume() {
super.onResume();
((MyApplication)getApplication()).active = true;
}
public void onDestroy() {
super.onDestroy();
((MyApplication)getApplication()).destroyed += 1;
}