Cuando un usuario presiona el botón Atrás en un intento, la aplicación debe salir. ¿Cómo puedo garantizar que la aplicación se cierra cuando se presiona el botón Atrás?android presionando el botón Atrás debe salir de la aplicación
Respuesta
Inmediatamente después de comenzar una nueva actividad, usando startActivity
, asegúrese de llamar al finish()
para que la actividad actual no se apile detrás de la nueva.
EDITAR En cuanto a su comentario:
Lo que sugieres no es particularmente cómo el flujo de aplicaciones para Android por lo general funciona, y cómo los usuarios de esperar que funcione. Lo que puede hacer si realmente lo desea, es asegurarse de que cada startActivity
antes de esa actividad, es startActivityForResult
y tiene un oyente onActivityResult
que comprueba si hay un código de salida y las burbujas vuelven. Puede read more about that here. Básicamente, utilice setResult
antes de terminar una actividad, para establecer un código de salida de su elección, y si su actividad principal recibe el código de salida, se establece que en que actividad, y que uno termine, etc ...
¿Por qué el usuario no debería presionar el botón de inicio? Luego pueden salir de su aplicación de cualquiera de sus actividades, no solo de una específica.
Si le preocupa que su aplicación continúe haciendo algo de fondo. Asegúrese de detenerlo en los comandos onPause y onStop relevantes (que se activarán cuando el usuario presione Inicio).
Si su problema es que desea la próxima vez que el usuario haga clic en su aplicación para que comience desde el principio, le recomiendo que coloque algún tipo de elemento de menú o botón de IU en la pantalla que lleve al usuario a la actividad de inicio de tu aplicación. Al igual que el pájaro del gorjeo en la aplicación oficial de Twitter, etc.
en mi casa Actividad puedo reemplazar el "onBackPressed" a:
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
por lo que si el usuario está en la actividad principal y oprima la espalda, va a la pantalla de inicio.
Tomé el código de Going to home screen Programmatically
una mejor experiencia de usuario:
/**
* Back button listener.
* Will close the application if the back button pressed twice.
*/
@Override
public void onBackPressed()
{
if(backButtonCount >= 1)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
else
{
Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
backButtonCount++;
}
}
Buen trabajo. Algunas otras cosas que agregaría es establecer una variable miembro a la llamada Toast.makeText (por ejemplo, Toast myToast = Toast.makeText()), luego usar eso en backButtonCount> = 1, llamando a .cancel() en esa tostada. Alargué la duración a Toast.LENGTH_LONG para mis propósitos, ya que para la cantidad de texto la duración parecía corta. Mis usuarios son personas mayores. Además, como probablemente sea obvio, backButtonCount es una variable miembro establecida en 0 y también debe establecerse en 0 dentro de su primera instrucción if. –
También agregué "android.os.Process.killProcess (android.os.Process.myPid());" entonces mi aplicación se mata y se reinicia si el usuario vuelve a hacer clic –
termine su current_activity utilizando el método finish() onBack method of your current_activity
y luego añadir debajo de las líneas de OnDestroy del current_activity para la Eliminación de la Fuerza de cerca
@Override
public void onDestroy()
{
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
La aplicación solo saldrá si no hay actividades en la pila posterior. Así que añadir esta línea en su manifiesto androide: noHistory = "true" a todas las actividades que usted no quiere estar de vuelta stacked.And entonces para cerrar la aplicación llame a la acabado() en el OnBackPressed
<activity android:name=".activities.DemoActivity"
android:screenOrientation="portrait"
**android:noHistory="true"**
/>
Antes que nada, Android no recomienda que hagas eso en el botón Atrás, sino que usas los métodos del ciclo de vida proporcionados. El botón Atrás no debe destruir la Actividad.
Las actividades se agregan a la pila, accesible desde la vista general (botón cuadrado desde que introdujeron el diseño de Material en 5.0) cuando se presiona el botón Atrás en la última Actividad restante de la pila de IU. Si el usuario desea cerrar su aplicación, debe deslizarla hacia afuera (cerrarla) desde el menú de Información general.
Su aplicación es responsable de detener las tareas en segundo plano y los trabajos que no desea ejecutar, en los métodos de ciclo de vida onPause(), onStop() y onDestroy(). Por favor, lea más acerca de los ciclos de vida y su correcta aplicación aquí: http://developer.android.com/training/basics/activity-lifecycle/stopping.html
Pero para responder a su pregunta, puede hacerlo hacks para implementar el comportamiento exacto que desea, pero como he dicho, no se recomienda:
@Override
public void onBackPressed() {
// make sure you have this outcommented
// super.onBackPressed();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
Para salir de una aplicación de Android, simplemente use. en su actividad principal, o puede archivo de manifiesto de Android utilizar para establecer
android:noHistory="true"
Uso onBackPressed
método
@Override
public void onBackPressed() {
finish();
super.onBackPressed();
}
Esto va a resolver su problema.
Modifiqué @Vlad_Spays para que el botón de retroceso funcione normalmente a menos que sea el último elemento de la pila, y luego avisa al usuario antes de salir de la aplicación.
@Override
public void onBackPressed(){
if (isTaskRoot()){
if (backButtonCount >= 1){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else{
Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
backButtonCount++;
}
}else{
super.onBackPressed();
}
}
- 1. ¿Por qué la aplicación de Android se reinicia si usamos el botón Atrás para salir?
- 2. Impedir cancelar el modo de acción presionando el botón Atrás
- 3. android: botón de volumen anulado ha afectado el botón Atrás?
- 4. Phonegap Android Botón Atrás - cerrar la aplicación con el botón Atrás en la página principal
- 5. Android - Simular el botón Atrás
- 6. Cerrar la aplicación al presionar el botón Atrás en Android
- 7. muestra el diálogo sí/no antes de salir de la aplicación mediante el botón Atrás
- 8. ¿Cómo borrar la pila de actividad anterior y Salir de la aplicación en el botón Atrás?
- 9. Anular botón Atrás de Android
- 10. cómo desactivar el botón Atrás en Android
- 11. Ejecutar document.ready incluso si el usuario llegó a la página presionando el botón Atrás
- 12. El botón Atrás de Android no reinicia la actividad?
- 13. Android: Cómo simular el botón Atrás
- 14. Cómo deshabilito el botón Atrás de Android en una página y cambio al botón de salir en todas las páginas
- 15. Anular botón Atrás en Android
- 16. Manejo del hardware de Android Botón Atrás
- 17. Vista web de Android con el botón Atrás, si no
- 18. Interceptar el botón Atrás
- 19. El botón Atrás sale de la aplicación en Android con el acelerador de titanio
- 20. ¿Salir de la aplicación al hacer clic en el botón en el teléfono Android?
- 21. Cómo guardar la aplicación en el botón Atrás, presione
- 22. Comportamiento del botón Atrás de Android
- 23. Salir/Terminar una aplicación/actividad - android
- 24. Impedir que el botón Atrás cierre mi aplicación
- 25. cómo manejar el botón Atrás del dispositivo en la aplicación sencha touch
- 26. jQuery Mobile - botón Atrás
- 27. Android: manejo del botón Atrás durante asynctask
- 28. Botón Atrás y última actividad
- 29. Android: cambiar las acciones del botón Atrás
- 30. Determine el estado de la aplicación presionando el botón de inicio dos veces con la aplicación ejecutando
Creo que no entendía el caso, mi pregunta es cuando el usuario haga clic en una actividad específica que elegir? Pulsando el botón sobre él debe hacer la salida llamada de aplicación –
bien hacia atrás, ver a mi edición. –