Reputation: 10555
Currently, I can only get the IDs of recent tasks, as below:
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);
}
But how to get other info? like package_name, main_activity and so on?
Also I found some IDs are -1
. What does it mean? Can we get info of these tasks?
Upvotes: 0
Views: 3071
Reputation: 4701
here, I used this code for bring running app to foreground from background. I hope this help you...
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;
}
}
Upvotes: 1
Reputation: 905
-1
means the task is NOT currently running.
You can use recentTaskInfo.baseIntent
to get the Intent
that was used to launch the task, then e.g. get the package name using intent. getComponent().getPackageName()
.
Upvotes: 2