2

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

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

我的清单中也有此权限

android.permission.GET_TASKS

感谢您对为什么这不起作用的任何帮助

4

2 回答 2

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);
于 2013-09-08T02:34:30.353 回答
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);
于 2013-09-08T02:53:51.387 回答