System.exit (0) no cierra todas mis actividades?
Tengo 2 actividad, así que la actividad 1 va a la actividad 2 entonces a la actividad 2 Tengo un botón de salida. Pero cuando hago clic en él, todo lo que sólo salió de la actividad número 2 y volver a la actividad 1 de nuevo. Se siente básicamente como si acababa de iniciar la aplicación de nuevo. No estoy seguro de por qué?
Este es mi código.
- ¿Hay alguna diferencia entre Activityname.this () y esto?
- El menú emergente desaparece de la pantalla
- ¿Cómo puedo saber si una actividad de Android ha finalizado desde un comando externo de adb?
- ¿Cómo comprobar si una actividad es la última en la pila de actividades de una aplicación?
- Public static variable o use putExtra método de clase de intención
Button btExit = (Button) findViewById(R.id.btExit); btExit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); System.exit(0); } });
- Establecer indicadores de intención para PreferenceScreen en xml
- Cómo llamar a clase de adaptador antes de la actividad
- Android: Ir al URL de HTTP en el botón de clic
- Envío de SMS mediante programación sin necesidad de abrir la aplicación de mensajes
- Mi actividad no se muestra en el uso de Android
- Android: Modo de inicio 'instancia única'
- Cómo controlar la pila trasera de Android
- Dudas sobre bindService
System.exit(0);
Es una mala forma de finalización de las aplicaciones de Android. Android lo gestiona en su propio sistema operativo
Puede traer la aplicación Inicio por su Propuesta correspondiente:
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
espero que esto ayude
EDIT: –
Entonces supongo que estás apuntando a terminar toda la actividad acumulada.
Aquí está :-
Cerrando todas las actividades anteriores de la siguiente manera:
Intent intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("Exit me", true); startActivity(intent); finish();
A continuación, en el método MainActivity onCreate()
agregue esto para finalizar MainActivity
if( getIntent().getBooleanExtra("Exit me", false)){ finish(); }
El resultado será el mismo que el anterior, pero debido a que todas sus actividades apiladas están cerradas, cuando regrese a su aplicación debe comenzar desde su actividad principal, es decir, la actividad del lanzador.
Espero que esto ayude.
No utilice System.exit
.
Si quieres que el usuario cierre la aplicación de cualquier Activity
, sugiero usar startActivityForResult
, comprobando el valor devuelto en onActivityResult
en la primera Activity
y llamando finish()
allí también.
Puede simular pulsando el botón de inicio:
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
Pero esto no cierra la aplicación ..
Para cerrarlo , puede hacerlo como https://stackoverflow.com/a/9735524/1434631
Use finish () y un flag sharedPreference y establezca el indicador cuando haga clic en el botón. En su otra actividad, marque la bandera y termine () si el indicador está establecido
Termine la primera actividad llamando a finish();
En el botón después de pasar la intención de iniciar la siguiente actividad.
System.exit (0) no funciona para cerrar la aplicación
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); am.killBackgroundProcesses("com.root.abc"); System.runFinalizersOnExit(true); System.exit(0); add Manifest permission <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
- Utilizando un local_manifest.xml con repo
- Cambiar el icono del marcador durante el tiempo de ejecución