Esta es una solución que he probado y me funcionó a la perfección.
SOLUCIÓN-1
this.finish();//try activityname.finish instead of this
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
uso esto en la actividad en la que desea salir de su aplicación ....
============= =============================================== =================== El código anterior le ayuda a reanudar su aplicación la última vez que la dejó.
SOLUCIÓN-2
Si desea salir de la aplicación y también cerca de todas las actividades en ejecución que necesita para su uso.
onActivityResult()
Para EG supongamos que hay 3 actividades A, B, C se desplaza desde A-> B-> C y en C que desea cerrar todas las actividades a continuación, utilizar siguiente ejemplo.
Actividad A
public class A extends Activity {
int Finish = 100;
Button launch_second;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
launch_second = (Button) findViewById(R.id.start_second_act);
launch_second.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent second = new Intent(A.this,
B.class);
startActivityForResult(second, Finish);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 100:
this.finish();
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
Actividad B
public class B extends Activity {
private Button launch_next;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_main);
launch_next = (Button) findViewById(R.id.start_third_activity);
launch_next.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent third = new Intent(B.this,C.class);
startActivityForResult(third, 100);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 100:
setResult(requestCode);
this.finish();
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
}
Actividad C
public class C extends Activity {
Button kill_app;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.third_main);
kill_app = (Button)findViewById(R.id.kill_app_btn);
kill_app.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
C.this.finish();
setResult(100);
}
});
}
}
solución de 3
Hay i s método disponible finishAffinity()
llamarlo desde cualquier actividad, todas las actividades anteriores se destruirán.
Hola, gracias por responder uso finish() en cada actividad, pero luego mi botón de retroceso móvil no funciona si presiono volver cerrar mi aplicación – vijay2991
depende de lo que estés tratando de lograr. ¿Desea hacer clic en Cerrar sesión y cerrar su programa, pero en cualquier otro caso, al presionar el botón Atrás, desea que las Actividades anteriores sean visibles? – hovanessyan
sí, en realidad tengo la función de inicio de sesión y cierre de sesión para el usuario, así que quiero cuando el usuario inicie sesión, puede navegar en mi aplicación fácilmente usando el botón de retroceso móvil o el menú, pero cuando hago clic en cerrar sesión, quiero cerrar la actividad y no puede entrar a la página anterior sin iniciar sesión de nuevo ... y agradecer a hovanessyan por darme tu valioso tiempo ... :-) – vijay2991