【问题标题】:How to get App info from RecentTaskInfo?如何从RecentTaskInfo 中获取应用信息?
【发布时间】:2013-11-26 16:22:57
【问题描述】:

目前只能获取近期任务的ID,如下:

final List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);
for (int i = 0; i < recentTasks.size(); i++) 
{
     System.out.println(""+recentTasks.get(i).id);
}

但是如何获取其他信息?比如package_name、main_activity等等?

我还发现一些 ID 是-1。这是什么意思?我们可以获取这些任务的信息吗?

【问题讨论】:

标签: android


【解决方案1】:

-1 表示任务当前未运行。

您可以使用recentTaskInfo.baseIntent 来获取用于启动任务的Intent,然后例如使用intent. getComponent().getPackageName()获取包名。

【讨论】:

    【解决方案2】:

    在这里,我使用此代码将正在运行的应用程序从后台带到前台。 希望对你有帮助...

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
     {  
    final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    final List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(Integer.MAX_VALUE, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
    
    RecentTaskInfo recentTaskInfo = null;
    
    for (int i = 0; i < recentTasks.size(); i++) 
    {
        if (recentTasks.get(i).baseIntent.getComponent().getPackageName().equals(packageName)) {
           recentTaskInfo = recentTasks.get(i);
           break;
        }
    }
    
    if(recentTaskInfo != null && recentTaskInfo.id > -1) {
        activityManager.moveTaskToFront(recentTaskInfo.persistentId, ActivityManager.MOVE_TASK_WITH_HOME);
        return;
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      相关资源
      最近更新 更多