启动最新的应用程序

时间:2013-09-07 19:23:20

标签: android activity-manager

我正在开发一个生产力应用程序,我希望能够在检测到手势时启动用户最近的应用程序,但是,我无法弄清楚为什么下面这段代码没有启动我的最新版本应用

ActivityManager m = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);
RecentTaskInfo task = m.getRecentTasks(1, 0).get(0);
startActivity(task.baseIntent);

我的清单中也有此权限

android.permission.GET_TASKS

感谢您提供有关无法正常工作的任何帮助

2 个答案:

答案 0 :(得分:2)

RecentTaskInfo task = m.getRecentTasks(1, 0).get(0);

由于您将最大结果数设置为1,因此您将使用get(0)获得自己的任务。要获得您要查找的结果,请尝试将结果的最大数量设置为2,并使用返回列表中的第二个任务:

ActivityManager m = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);
RecentTaskInfo task = m.getRecentTasks(2, 0).get(1);
startActivity(task.baseIntent);

答案 1 :(得分:0)

以下代码适用于我最近获得30个应用:

    private static final int MAX_TASKS = 30;

    final ActivityManager am = (ActivityManager)
                mContext.getSystemService(Context.ACTIVITY_SERVICE);


    final List<ActivityManager.RecentTaskInfo> recentTasks =
                am.getRecentTasks(MAX_TASKS,                   ActivityManager.RECENT_IGNORE_UNAVAILABLE);