studio programacion para móviles libro edición desarrollo curso aplicaciones java android homescreen

java - programacion - Cómo iniciar la pantalla de inicio programáticamente en Android



programacion android pdf 2017 (9)

¡Esto está funcionando bien para mí!

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

¿Alguien puede explicar por qué necesitamos esto?

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

por cierto, esto es lo que estaba buscando

moveTaskToBack(true);

Esta pregunta ya tiene una respuesta aquí:

Quiero lanzar la pantalla de inicio de Android con mi aplicación. El objetivo principal es mostrar todas las aplicaciones al usuario cuando presiona una tecla especializada. En realidad, el camino no es importante. ¿Alguna idea para hacer esto?


¡No estoy seguro si entiendo completamente lo que estás tratando de hacer! Pero si quiere decir que desea que el usuario pueda acceder a otra aplicación haciendo clic dentro de su aplicación, debería verificar "intención". Ejecute el código de ejemplo de DEMO DEMO en eclipse y ejecute la aplicación -> Intenciones


Aquí está el código para iniciar HomeActivity

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


Creo que llego muy tarde a la fiesta, pero tenía una preocupación similar. Las respuestas dadas aquí inician un menú de selección que le permite elegir el Iniciador. Si tiene más de un lanzador en su código, la respuesta aquí: https://.com/a/8666155 podría ser de ayuda. Esto inicia directamente la pantalla de inicio predeterminada de Android.


Lo he logrado utilizando una sola línea.

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

Se comporta como el botón de inicio


Los comentarios que hizo en algunas de las respuestas sugieren que realmente desea iniciar el Iniciador (es posible que desee actualizar el título si este es el caso). Para hacer esto, use el mismo enfoque que Anand propuso para iniciar la actividad en el hogar.

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


Ninguna de las soluciones aquí está funcionando para mí.

Lo tengo funcionando usando el siguiente código

PackageManager pm = getPackageManager(); Intent i = new Intent("android.intent.action.MAIN"); i.addCategory("android.intent.category.HOME"); List<ResolveInfo> 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(); } } }

Lo obtuve de: https://.com/a/16483596/1241783

Espero que esto ayude a alguien


No hay una "pantalla que muestre aplicaciones con sus iconos a los usuarios" en Android.

Lo que estás pensando es una característica de algunas pantallas de inicio. No hay una Intent estandarizada para que aparezca esto, y no hay ningún requisito para que las pantallas de inicio tengan tal característica.

Le invitamos a escribir su propio. Aquí hay un proyecto de muestra que muestra las actividades ejecutables en un ListView .


intente algo como esto para hacer clic en el botón Atrás cualquiera que vaya a pantalla de inicio / ...

@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); }