I.e我想知道用户何时与我的应用程序交互,何时不知道。
我尝试过使用ActivityManager.getRecentTasks()。我已检查过顶级任务的根活动,以检测是否与我的应用程序交互用户。
我每隔一两步就被迫在分开的线程中检查它。
这种方式对我不利。还有另一种方法可以检测我的应用程序的任何活动何时打开或关闭?
答案 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;
}