Pregunta

Quiero ir a la pantalla de inicio mediante programación en Android cuando el usuario hace clic sobre el botón. ¿Cómo puede hacerse esto?

¿Fue útil?

Solución

Se puede hacer esto a través de un Intención .

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

Esta intención se iniciará el lanzador de aplicaciones que el usuario ha definido. Tenga cuidado con esto, porque este aspecto es que le gusten estrelló su aplicación si el usuario no espera que esto.

Si desea que esta para construir un botón de salida de su aplicación por favor leer este artículo sobre salida Botones en Android

Otros consejos

Una solución línea

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

se comportará como se pulsa el botón Inicio

La respuesta de Janusz es grande.

Lo único que quiero añadir, que es un poco demasiado largo para un comentario, es que se puede ir a la pantalla de inicio sin tener una referencia a la actividad actual.

Código de Janusz necesita ser llamado de una actividad o un fragmento debido a startActivity(),

Para evitar esto, se puede almacenar una referencia estática a su Contexto aplicaciones en su archivo de aplicación:

public class YourApplication extends Application
{

    private static Context mAppContext;

    public void onCreate()
    {
        super.onCreate();
        ...
        YourApplication.mAppContext = getApplicationContext();
    }

    public static Context getContext()
    {
        return mAppContext;
    }

}

Ahora usted puede enviar al usuario a la pantalla de inicio del dispositivo de cualquier clase en su aplicación, no sólo actividades, fragmentos, u otras clases con una referencia a la actividad actual (usted puede decidir si esto es una buena o mala cosa) :

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

sitio de desarrolladores de Android

Estos son algunos ejemplos de otras operaciones que se pueden especificar como las intenciones que utilizan estos parámetros adicionales:

* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

Sé que esto es un poco tarde, pero también me encontré con el mismo problema y aquí es cómo lo resolví. Volviendo a su MainActivity es necesario agregar banderas de la que sale el Activity

    final Intent mainActivity = new Intent(this, MainActivity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

Ahora, cuando se ha pulsado el botón de retroceso siendo MainActivity la activa, pasará a la pantalla principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top