我是新来的机器人。在我的应用程序,我想跟踪多少时间,其他应用程序(这是安装在设备)的使用(在前台)。
I am new to android. In my application, i want to track for how much time other applications (which are installed on device) are used (in foreground).
这可能吗?如果是的话怎么办?
Is it possible? If yes then how?
在此先感谢!
推荐答案第一件事情,这是需要被称这里是什么是被在前台运行的应用程序:
First thing , that's required to be known here is what are the applications that are running in the foreground :
您可以检测当前与前景/背景的应用程序 ActivityManager.getRunningAppProcesses()电话。
You can detect currently foreground/background application with ActivityManager.getRunningAppProcesses() call.
因此,它看起来像::
So, it will look something like ::
class findForeGroundProcesses extends AsyncTask<Context, Void, Boolean> { @Override protected Boolean doInBackground(Context... params) { final Context context = params[0].getApplicationContext(); return isAppOnForeground(context); } private boolean isAppOnForeground(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses(); if (appProcesses == null) { return false; } final String packageName = context.getPackageName(); for (RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) { return true; } } return false; } } // Now you call this like: boolean foreground = new findForeGroundProcesses().execute(context).get();您也许可以看看这个还有:Determining前台/后台进程。
You can probably check this out as well : Determining foreground/background processes.
要衡量其运行适当的时候采取的方法的时候,你可以用这个方法:
To measure the time taken by a process to run its due course , you can use this method :
getElapsedCpuTime()
请参阅此文章。
更多推荐
测量时间花在Android应用
发布评论