android - programacion - Ir a la pantalla de inicio mediante programación
manual android studio avanzado (5)
Quiero ir a la pantalla de inicio de forma programática en Android cuando el usuario hace clic en el botón. ¿Cómo puede hacerse esto?
Desde el sitio del Intent
Aquí hay algunos ejemplos de otras operaciones que puede especificar como intenciones usando estos parámetros adicionales:
* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
Puedes hacer esto a través de un Intent .
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
Este Intento iniciará la aplicación iniciadora que el usuario haya definido. Tenga cuidado con esto porque parecerá que su aplicación se bloqueó si el usuario no espera esto.
Si desea que esto genere un botón de salida desde su aplicación, lea este artículo sobre los botones de salida en Android
Sé que esto es un poco tarde, pero también encontré el mismo problema y así es como lo resolví. Volviendo a su MainActivity
, necesita agregar indicadores de la Activity
sale.
final Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
Ahora cuando presionó el botón MainActivity
siendo MainActivity
el activo, irá a la pantalla de inicio.
Solución de una línea
moveTaskToBack(true); //activity.moveTaskToBack(true);
se comportará cuando se presiona el botón de inicio
La respuesta de Janusz es genial.
Lo único que quiero agregar, que es un poco demasiado largo para un comentario, es que puede ir a la pantalla de inicio sin tener una referencia a la actividad actual.
El código de Janusz necesita ser llamado desde una Actividad o Fragmento debido a startActivity()
,
Para evitar esto, puede almacenar una referencia estática al contexto de su aplicación 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 puede enviar al usuario a la pantalla de inicio del dispositivo desde cualquier clase en su aplicación, no solo Actividades, Fragmentos u otras Clases con una referencia a la Actividad actual (puede decidir si esto es bueno o malo):
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);