java - 获取android中当前正在运行的任务的应用程序图标

标签 java android task

我使用以下代码 fragment 成功获取了当前安装的应用程序的应用程序图标:

List<ApplicationInfo> list = pm.getInstalledApplications(PackageManager.GET_ACTIVITIES);

    for (int i=0; i< list.size(); i++)
    {
        randInt1 = new Random().nextInt(list.size());

        ApplicationInfo appInfo = list.get(randInt1);
        packageName = appInfo.packageName;
        appLabel = (String) pm.getApplicationLabel(appInfo);
        icon = pm.getApplicationIcon(appInfo);

        System.out.println("Icon ==> " +icon);

    }

如何返回当前正在运行的任务的图标,而不仅仅是已安装的应用程序?


好吧,这就是我最后做的,它似乎工作正常,但是有没有办法只检索用户启动的任务,就像任务 killer 会返回而不是 hibernate 的系统进程一样?他们可以按类别过滤吗?如果有帮助,目标是为用户最近启动的当前正在运行的任务之一返回一个随机应用程序图标。

int ii=0;

      List< ActivityManager.RunningTaskInfo> Runningtasks= mgr.getRunningTasks(30);
      for(ii=0;ii<Runningtasks.size();ii++)
      {

         randInt1 = new Random().nextInt(Runningtasks.size());

          ComponentName comName=Runningtasks.get(randInt1).topActivity;
          packageName = comName.getPackageName();
          //String Classname = comName.getClassName();



          System.out.println("icon====> "+icon);
          System.out.println("packageName====> "+packageName);

         // Toast toast1 = Toast.makeText(pm, packageName, LONG);
         // toast1.show();
      }


      try{
          icon = pm.getApplicationIcon(packageName);
          }catch(Exception e){}

最佳答案

您可以使用ActivityManager.getRunningTasks() 获取正在运行的列表tasks .该列表将有一个 RunningTaskInfo其中包含一个名为 baseActivity 的字段,它是一个 ComponentName。

从那里你可以做类似的事情:

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(componentName.getPackageName(), 0);
... // rest of the code as you previously did..

关于java - 获取android中当前正在运行的任务的应用程序图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864045/

相关文章:

java - 最佳实践在哪里注册广播接收器?

java - 在 swing 应用程序中嵌入 3D View 的库?

android - 使用 Google map 时应用程序因 FragmentManager Replace 而崩溃

java - 世博会弹出的应用程序因 java.net.ConnectException 崩溃

windows - 在 win 7 任务计划程序中顺序运行批处理文件

java - Guice:测试和子项目中的不同绑定(bind)

java - 如何动态处理facebook API版本升级异常

java - 从php页面解析数据到android

command-line - Gradle myCustomTask-如何避免通过传递命令行参数来调用依赖项任务

C# 命名任务 正确的方法是什么?