1

我正在尝试获取第二个最近的应用程序的包名称(而不是当前运行的应用程序)。

现在我已经走到了这一步:

                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();

                    }

但这将显示所有最近的任务。

如果有人知道如何只显示倒数第二个任务,而不是所有任务,我们将非常感谢您的帮助!

4

2 回答 2

0

要从 Activity Stack 获取第二个最近的任务,请尝试如下:

 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..

}
于 2013-05-24T16:00:58.873 回答
0

您正在循环和烘烤,因此您显示了最近任务中存在的所有项目。

第二项可能是:

recentTasks.get(1);
于 2013-05-24T16:06:04.287 回答