2013-09-07 5 views
2

Я работаю над продуктивным приложением, и я хотел бы иметь возможность запускать последнее приложение для пользователей, когда обнаружен жест, однако я не могу понять, почему этот код ниже запуск моего последнего приложения.Запустить последнее приложение

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

У меня также есть это разрешение в мой манифест

android.permission.GET_TASKS 

Спасибо за любую помощь, почему это не работает

+0

Вы видите ошибки в 'LogCat'? –

+0

Я только видел недостающее разрешение, но потом добавил, что он все еще не работает. Но просмотрите журналы еще, хотя я ничего не нашел в прошлый раз – user577732

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

 Смежные вопросы

  • Нет связанных вопросов^_^