android – 获取最近并运行的应用程序列表不是进程

我尝试了很多来获取最近和正在运行的应用程序(不是进程)的列表但是无法获得它.

我查看了有关此问题的所有stackoverflow问题,但我得到的关于运行流程和最近任务的唯一答案不是特定于应用程序,就像我们在长按主页按钮时可以在Samsung Mobile任务管理器中看到的那样.

我可以通过以下代码获取正在运行的进程:

ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();

for(RunningAppProcessInfo runningProInfo:procInfos){

        Log.d("Running Processes","()()"+runningProInfo.processName);
}

它给出了所有进程的包名,但我只想要启动的应用程序的包名(Both Recent和Running).

如何从运行应用程序进程中提取它?

解决方法

更新:即使使用以下解决方案,我也看不到获取最近任务名称的方法,但这将适用于当前正在运行和冻结的任务: getRunningTasks

使用getRunningTasks将返回一个RunningTaskInfo列表,其中包含基本ComponentName,您可以通过调用getPackageName()来获取包名称.

原始答案:

你应该看看getRecentTasks.它的功能被描述为

Return a list of the tasks that the user has recently launched,with
the most recent being first and older ones after in order.

Note: this method is only intended for debugging and presenting task
management user interfaces.

这应该会为您提供最近运行或正在运行的所有应用程序的列表.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...