Estoy seguro de que esta pregunta se ha hecho varias veces porque leí algunas. Mi cliente quiere que ponga un botón en su aplicación donde los usuarios puedan hacer clic y salir. He leído esto y he descubierto que llamar finish()
lo hará. Pero, terminar es solo cerrar la actividad de carrera actual, ¿verdad? Tengo muchas actividades, así que en este caso tengo que pasar la instancia de todas y cada una de las actividades y terminarlas o hacer que cada actividad tenga un patrón Singleton.
También supe que Activity.moveTaskToBack(true)
puede llevarte a la pantalla de inicio. Bien, esto no es cerrar, sino poner en segundo plano el proceso. Entonces, ¿esto es efectivo?
¿Qué método debo utilizar para cerrar la aplicación por completo? ¿Alguno de los métodos descritos anteriormente o cualquier otro / otro uso de los métodos anteriores?
fuente
Respuestas:
En realidad, todos buscan cerrar la aplicación en un evento onclick, donde sea que haya actividad ...
Entonces, amigos, prueben este código. Pon este código en el evento onclick
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent);
fuente
Puede llamar a System.exit (); para salir de todas las actividades.
submit=(Button)findViewById(R.id.submit); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } });
fuente
El método finishAffinity, lanzado en API 16, cierra todas las actividades en curso y cierra la aplicación:
this.finishAffinity();
Desde API 21, puede utilizar:
Alternativas:
getActivity().finish(); System.exit(0);
int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid);
Intent i = new Intent(context, LoginActivity.class); i.putExtra(EXTRA_EXIT, true); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(i);
Fuente: Cómo salir de la aplicación de Android mediante programación
¡Espero eso ayude! ¡Buena suerte!
fuente
Si desea salir de su aplicación, use este código dentro de su evento de botón presionado:
public void onBackPressed() { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); }
fuente
@Override public void onBackPressed() { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setTitle("Exit Application?"); alertDialogBuilder .setMessage("Click yes to exit!") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); }
fuente
Es demasiado fácil. Utilizar
System.exit(0);
fuente
De hecho, hay dos situaciones posibles:
Puede salir de la actividad usando el siguiente código:
var intent = new Intent(Intent.ActionMain); intent.AddCategory(Intent.CategoryHome); intent.SetFlags(ActivityFlags.NewTask); startActivity(intent); finish();
Pero esto no eliminará las actividades subyacentes en la misma aplicación. Esto solo minimizará la aplicación.
Si desea salir de la aplicación, use el siguiente código para finalizar su proceso:
para desarrollo mono solo use
fuente
android.os.Process.killProcess(android.os.Process.myPid());
yprocess.KillProcess(Process.MyPid());
?Qué tal si
this.finishAffinity()
De los documentos,
fuente
fuente
esto borrará la Tarea (pila de actividades) y comenzará una nueva Tarea
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); System.exit(1);
fuente
@Override public void onBackPressed() { Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); }
fuente
pon este en tu onClic:
moveTaskToBack(true); finish()
fuente
movewTaskToBack
no termina nada, solo oculta la aplicación y,finish
como lo mencionó cualquier otra persona, termina solo la actualactivity
. De modo que abandona la actividad actual y oculta el resto, si se presenta alguno. De todos modos, no debería recibir un voto negativo solo por esto ...Pruebe esto en una llamada. A veces lo uso al hacer clic en un botón.
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
En lugar de cerrar su aplicación, abre el tablero de modo que parece que su aplicación está cerrada.
lea esta pregunta para obtener más claridad android: salir del código de la aplicación
fuente
Utilice this.finishAffinity (); en ese botón en lugar de terminar (); Si no funciona, también puedes probar agregando android: noHistory = "true" en tu manifiesto y luego terminar tu actividad uisng finish (); o finishAffinity ();
Espero eso ayude....:)
fuente
Logrando en Xamarin.Android:
public override void OnBackPressed() { MoveTaskToBack(true); Process.KillProcess(Process.MyPid()); Environment.Exit(1); }
fuente
Simplemente llame a estas dos funciones
finish(); moveTaskToBack(true);
fuente
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); System.exit(1);
Use este Código, es muy útil y puede salir de todas las actividades.
fuente
la actividad fantasma llamada con singletop y finish () en onCreate debería hacer el truco
fuente
Funciona usando solo
moveTaskToBack(true);
fuente
En lugar de System.exit (1) Simplemente use System.exit (0)
fuente
Si alguien todavía se pregunta, para Xamarin.Android (en mi caso también Monogame ejecutándose en él) ¡el comando
FinishAndRemoveTask()
enActivity
hace el trabajo muy bien!fuente
en el fragmento
getActivity (). finishAndRemoveTask ();
en la actividad
finishAndRemoveTask ();
fuente
solo usa el código en tu backpress
Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain);
fuente
Si está utilizando EventBus (o realmente cualquier otra biblioteca de pub / sub) en su aplicación para comunicarse entre actividades, puede enviarles un evento explícito:
final public class KillItWithFireEvent { public KillItWithFireEvent() {} public static void send() { EventBus.getDefault().post(new KillItWithFireEvent()); } }
El único inconveniente de esto es que necesita que todas las actividades para escuchar este evento sean propias
finish()
. Para esto, puede crear fácilmente clases de actividad shim a través de la herencia que solo escuchan este evento y permiten que las subclases implementen todo lo demás, luego asegúrese de que todas sus actividades hereden de esta capa adicional. Los oyentes de matar podrían incluso agregar algunas funciones adicionales a través de anulaciones, como evitar la muerte en ciertas situaciones particulares.fuente
Simplemente ejecute las dos líneas siguientes cuando desee salir de la aplicación
android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1);
fuente
finish(); finishAffinity(); System.exit(0);
trabajó para mi
fuente
Solo llama a esto:
fuente
Vincula este método a tu botón salir / salir
public void quitGame(View view) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { finishAndRemoveTask(); } else { finish(); } }
fuente
Si usa finalizar y salir, su aplicación se cerrará por completo
terminar();
System.exit (0);
fuente