Как запустить Домашний экран программно в Android

Я хочу запустить домашний экран Android с моим приложением. Основная цель – показать все приложения пользователям, когда он нажимает специализированный ключ. Собственно, путь не важен. Любая идея сделать это?

Вот код для запуска HomeActivity

Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); 

Комментарии, сделанные вами по некоторым ответам, предполагают, что вы действительно хотите запустить Launcher (вы можете обновить заголовок, если это так). Чтобы сделать это, используйте тот же подход, предложенный Анандом для запуска домашней деятельности.

 Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_LAUNCHER); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); 

В Android нет «экрана, который показывает приложения со значками для пользователей».

То, о чем вы думаете, является особенностью некоторых домашних экранов. Нет стандартизированного Intent чтобы вызвать это, и для домашних экранов нет необходимости иметь такую ​​функцию.

Вы можете написать свой собственный. Вот пример проекта, который отображает запускаемые действия в ListView .

попробуйте что-то вроде этого, чтобы нажать кнопку «Назад», чтобы перейти к главному экрану / …

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // Display confirmation here, finish() activity. Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); return true; } return super.onKeyDown(keyCode, event); } 

Я не уверен, полностью ли понимаю, что вы пытаетесь сделать! Но если вы имеете в виду, что хотите, чтобы пользователь мог использовать другое приложение, щелкнув внутри вашего приложения, вы должны проверить «намерение». Запустите код примера API DEMO в eclipse и запустите App -> Intents

Я думаю, что я очень опаздываю на вечеринку, но у меня была такая же проблема. В приведенных ниже ответах запускается меню выбора, которое позволяет вам выбрать Launcher. Если у вас в вашем коде более одной пусковой установки, ответ здесь: https://stackoverflow.com/a/8666155 может помочь. Это непосредственно запускает основной экран Android по умолчанию .

Ни одно из решений здесь не работает для меня.

Я получил его, используя приведенный ниже код

 PackageManager pm = getPackageManager(); Intent i = new Intent("android.intent.action.MAIN"); i.addCategory("android.intent.category.HOME"); List lst = pm.queryIntentActivities(i, 0); if (lst != null) { for (ResolveInfo resolveInfo : lst) { try { Intent home = new Intent("android.intent.action.MAIN"); home.addCategory("android.intent.category.HOME"); home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); startActivity(home); break; } catch (Throwable t) { t.printStackTrace(); } } } 

Получил его: https://stackoverflow.com/a/16483596/1241783

Надеюсь, это поможет кому-то

Я достиг этого, используя одну строку

 moveTaskToBack(true); //activity.moveTaskToBack(true); 

Он ведет себя как кнопка «Главная»

Это работает хорошо для меня!

 Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startActivity(startMain); 

может кто-нибудь объяснить, зачем нам это нужно?

 startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

Кстати, это то, что я искал

 moveTaskToBack(true); 
  • Как правильно строить банки от IntelliJ?
  • Android - Изменить тему приложения onClick
  • Как я могу реализовать пользовательскую панель действий с пользовательскими кнопками в Android?
  • Получить объект JSON из ответа HTTP
  • Преобразовать строку в строку, разделенную запятыми, в java
  • Java не поддерживает множественное наследование, но неявно каждый class в java расширяет Object и позволяет еще один
  • Android: как изменить цвет разделителя datepicker?
  • Является ли массив объектом java
  • MediaPlayer.create () всегда возвращает null
  • java, расширяющий class с конструктором основного classа имеет параметр
  • Как распечатать escape-символы в Java
  • Давайте будем гением компьютера.