有什么方法可以检测我的应用程序的任何活动何时显示以及所有活动何时关闭?

时间:2012-04-02 10:49:02

标签: android android-activity lifecycle

I.e我想知道用户何时与我的应用程序交互,何时不知道。

我尝试过使用ActivityManager.getRecentTasks()。我已检查过顶级任务的根活动,以检测是否与我的应用程序交互用户。

我每隔一两步就被迫在分开的线程中检查它。

这种方式对我不利。还有另一种方法可以检测我的应用程序的任何活动何时打开或关闭?

1 个答案:

答案 0 :(得分:0)

查看活动的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;
}