我正在开发一个生产力应用程序,我希望能够在检测到手势时启动用户最近的应用程序,但是,我无法弄清楚为什么下面这段代码没有启动我的最新版本应用
ActivityManager m = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE);
RecentTaskInfo task = m.getRecentTasks(1, 0).get(0);
startActivity(task.baseIntent);
我的清单中也有此权限
android.permission.GET_TASKS
感谢您提供有关无法正常工作的任何帮助
答案 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);