我正在尝试获取第二个应用程序的软件包名称(因此当前正在运行的应用程序不是这样)。
现在我走到了这一步:
final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(20, ActivityManager.RECENT_WITH_EXCLUDED);
for (int i = 0; i < recentTasks.size(); i++) {
Intent baseIntent = recentTasks.get(i).baseIntent;
if(baseIntent != null) {
Context context = getApplicationContext();
CharSequence text = baseIntent.getComponent().getPackageName();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
但这将显示所有最近的任务。
如果有人知道如何仅显示第二个任务,而不是所有任务,那么您的帮助将非常感谢!
答案 0 :(得分:0)
从活动堆栈获取第二个近期任务尝试为:
List<RecentTaskInfo> recentTasks = activityManager.getRecentTasks(2,
ActivityManager.RECENT_WITH_EXCLUDED);
if(recentTasks.size() >= 1) {
RecentTaskInfo SecondrecentTask = recentTasks.get(1);
Intent baseIntent = SecondrecentTask.baseIntent;
//....do your work here..
}
答案 1 :(得分:0)
您正在循环播放和烘烤,因此您将显示recentTask中的所有项目。
第二项可能是:
recentTasks.get(1);