我想看看我的Android手机最近的任务.我正在尝试从互联网上获取一些代码,但不能正常工作.我只想获取用户执行的最后一个应用程序的PID和名称.例如,如果我执行计算器应用程序,然后执行我最近的任务应用程序,这个应用程序应该能告诉我类似的事情:"你执行的最后一个应用程序是'计算器',PID是'2222' ".
我正在检查Android开发人员网页上的一些代码,这是我发现的,但我不知道如何为Android实现.
ActivityManager.RecentTaskInfo
您可以检索有关用户最近开始或访问过的任务的信息.
ActivityManager.RunningServiceInfo
您可以检索有关当前在系统中运行的特定服务的信息.
任何建议,
最好的祝福
ActivityManager.RunningTaskInfo
您可以检索有关系统中当前"正在运行"的特定任务的信息.
小智 7
int numberOfTasks = 1;
ActivityManager m = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
//Get some number of running tasks and grab the first one. getRunningTasks returns newest to oldest
RunningTaskInfo task = m.getRunningTasks(numberOfTasks).get(0);
//Build output
String output = "the last application you've executed is '"+task.id+"' and the PID is '"+task.baseActivity.toShortString()+"'";
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案:
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (int i = 0; i < recentTasks.size(); i++)
{
Log.d("Executed app", "Application executed : " +recentTasks.get(i).baseActivity.toShortString()+ "\t\t ID: "+recentTasks.get(i).id+"");
}
Run Code Online (Sandbox Code Playgroud)
注意!!最后一个ID不是进程的PID!!如果你想获取进程的 PID,我使用了以下命令:
mLogcatProc = Runtime.getRuntime().exec(new String[] {"ps"});
Run Code Online (Sandbox Code Playgroud)
读取结果找到应用程序名称,然后拆分以获得PID进程。