У меня есть приложение, которое я хочу полностью завершить из любой активности и чтобы оно не оставалось в фоновом режиме. Приложение будет состоять из 5 действий. В третьем действии у меня есть следующий код.
@Override
protected void onDestroy() {
Log.i(TAG,"Me destrulleron");
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
public void onBackPressed() {
if(this.tiempoPrimerClick + INTERVALO > System.currentTimeMillis()){
finish();
return;
}else{
Toast.makeText(this,"Vuelve a precionar para salir", Toast.LENGTH_SHORT).show();
}
tiempoPrimerClick = System.currentTimeMillis();
}
Что завершает третье действие и второе действие, но оставляет меня в MainActivity.
Во втором действии у меня есть следующий код
@Override
protected void onDestroy() {
Log.i(TAG,"Me destrulleron");
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
} @Override
public void onBackPressed() {
if(this.tiempoPrimerClick + INTERVALO > System.currentTimeMillis()){
finish();
return;
}else{
Toast.makeText(this,"Vuelve a presionar para salir", Toast.LENGTH_SHORT).show();
}
tiempoPrimerClick = System.currentTimeMillis();
}
Нахождение в этой активности, если приложение закрыто, а процесс завершен.
Теперь в MainActivity у меня есть следующий код:
@Override
protected void onDestroy() {
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
Я все еще проверяю, почему в третьей активности приложение не закрывается полностью. Если вы дадите мне руку, это будет большой помощью.
Из версии
>= API 16
вы можете использовать,finishAffinity()
но есть альтернатива, которая работает на>= API 11
Альтернативный метод
Метод заключается в загрузке одного
Actividad
поверх всех остальных, удалении его стека, а затем закрытии его навсегда.Каждый раз, когда вы хотите оставить все
Actividades
открытыми, на случай, еслиonBackPressed
все они будути в
MainActivity.java
захвате, если естьintent
значение withEXIT
, чтобы завершить приложение полностью.Адаптировано из ответов SO и SO
Тест
finishAffinity();
Следует отметить, что он соответствует API Jelly Bean, и если он выдает ошибку, поместите
выше функции, где вы используете выше.