Я предполагаю, что Android не позволит людям делать это, потому что они считают, что у них идеальная ручка для задачи/приложений. Однако мне действительно нужно сделать это в моем случае.
У меня есть действие A, действующее как точка входа моего приложения. В этой деятельности он читает предпочтение и решает, какую деятельность начать, скажем, B или C. После этого он заканчивается. Таким образом, активность A никогда не появляется пользователям.
Мое приложение хранит вещи на SD-карте и постоянно читает ее. Таким образом, когда SD-карта размонтирована, мне нужно отобразить сообщение пользователю о том, что sdcard недоступен, вместо того, чтобы открывать B или C. Я установил проверку в A, чтобы отобразить это сообщение, когда SD-карта недоступна. Когда это сообщение отображается, A не будет пытаться запустить B или C.
Все работает отлично, если пользователь только вводит мое приложение из панели запуска приложений. Однако я обнаружил, что пользователь может также ввести мое приложение, долгое нажатие на дом и выбрать его из недавнего списка приложений, если он недавно открыл его. Когда пользователь делает это, он пропускает A и переходит непосредственно к B или C. У меня нет проверки в обоих из них, поэтому при попытке доступа к sdcard возникает исключение, а всплывающее диалоговое окно принудительного закрытия.
Я могу просто перенести свой чек на B и C, чтобы исправить эту проблему. Но в будущем количество мероприятий, начинающихся с A, будет увеличиваться. Если их 6, мне нужно скопировать эту проверку на 6 мест. Излишне говорить, что это выглядит очень уродливо, и это кошмар для обслуживания.
Итак, лучшим решением должно быть удаление моего приложения из списка последних приложений, когда sdcard унаследован. Однако я не могу найти, как это сделать. Даже убивая процесс или используя ActivityManager.restartPackage, он по-прежнему отображается в списке. Может ли кто-нибудь сказать мне, как удалить его из списка?