2011-01-21 10 views

Respuesta

1

¡No estoy seguro si entiendo completamente lo que intenta hacer! Pero si quiere decir que desea que el usuario pueda acceder a otra aplicación haciendo clic dentro de su aplicación, entonces debe verificar "intención". Ejecutar el código de ejemplo DEMO API en Eclipse, y ejecutar la aplicación -> Intentos

48

Este es 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); 
+1

Thx pero quiero abrir la pantalla que muestra las aplicaciones con sus iconos para los usuarios. Quise decir esto mientras decía "pantalla de inicio". – sjor

+1

¿Te refieres al lanzador? –

+0

Sí, de eso está hablando – Pachonk

5

No hay una "pantalla que muestra las aplicaciones con sus iconos para los usuarios" en Android

Lo que estás pensando es una característica de algunas pantallas de inicio. No existe una norma Intent para activar esta opción, y no es necesario que las pantallas de inicio tengan dicha función.

Le invitamos a que escriba la suya. Here is a sample project que muestra actividades de inicio en un ListView.

+0

Hola señor, necesito tu ayuda, traté de crear un armario de la pantalla de muestra que funciona bien, mi problema es después del bloqueo de la pantalla, el navegador navega al hogar predeterminado del dispositivo, cuando hago clic en botón de inicio lanzará mi iniciador pero necesita mostrar el hogar predeterminado después del desbloqueo, ¿cómo puedo hacerlo? – Aerrow

9

Los comentarios que ha realizado sobre 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 hogareña.

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

Bien hecho !!!! – Pachonk

+1

Extraño que abre mi aplicación de SMS. – rekire

+2

Esto solo abrirá una aplicación (o mostrará una lista de aplicaciones) que tenga la categoría "iniciador", que es la mayoría de ellas. Explica el comportamiento informado por rekire. – pents90

4

intentar algo como esto para hacer clic en el botón Atrás ninguna va a Goto 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); 
} 
+1

Nunca hagas esto. –

1

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

1

Ninguna de las soluciones que aquí está trabajando para mí ..

Yo tengo trabajo utilizando el código de abajo

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

que ya ha recibido: https://stackoverflow.com/a/16483596/1241783

Espero que esto ayude a alguien

0

Lo he logrado utilizando una línea

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

Se comporta como botón de inicio

0

¡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); 
Cuestiones relacionadas