Это один из обходных путей, который я пробовал, и он отлично сработал для меня.
SOLUTION-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);
используйте это в деятельности, где вы хотитечтобы выйти из приложения ....
======================================================================================= Вышеприведенный код помогаетчтобы возобновить работу приложения с того места, где вы остановились в последний раз.
SOLUTION-2
Если вы хотите выйти из приложения, а также закрыть все запущенные действия, которые вам нужно использовать.
onActivityResult()
Например, предположим, что есть 3 действия A, B, C, для которых вы переходите из A-> B-> C, и в C вы хотите закрыть все действия, а затем использовать следующий пример.
Активность 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);
}
Активность 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);
}
}
Активность 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);
}
});
}
}
SOLUTION-3
Доступен метод finishAffinity()
вызовите его из любого действия, все предыдущие действия будут уничтожены.