2015-03-17 2 views
-1

надеюсь, что у вас отличный день!Android - onBackPressed, чтобы отключить приложение

Итак, сегодня у меня довольно простой вопрос. В моей основной деятельности, когда я нажимаю кнопку «Назад», я хочу, чтобы приложение, которое я разработал, отключилось независимо от того, что он сделал прямо перед этим. И удалите стеки, чтобы он открывался в следующий раз.

Деятельности работает так:

A (Главное меню)

Есть 4 кнопки здесь, что приводит к 4-х различным видам деятельности В (О), C (Изменить тему), D (расчет ИМТ с измерениями в США), E (расчет ИМТ с измерениями ЕС)

D и E оба ведут к F (Результаты).

Когда я нахожусь в F и нажимаю назад, я хочу вернуться к предыдущему (D или E), который исправлен, и он сохраняет последнюю введенную информацию для удобства.

На мероприятии F есть кнопка, чтобы вернуться в меню. И если я нажму эту кнопку , а затем стандартную кнопку обратной связи с Android, я получу от A до D/E, а затем до A снова перед закрытием приложения.

Когда я нахожусь в B, C, D, E Я хочу вернуться к A. Когда я нахожусь в A Я хочу отключить приложение.

настройки для каждого из них:

A - onBackPressed() - Here I want to put to turn off the application. 
onClickA/B/C/D() 
{ 
    Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(Intent); 
    finish(); 
} 

B - android:noHistory(true) 
onBackPressed() 
{ 
    Start New Intent A. 
} 

C - android:noHistory(true) 
onBackPressed() 
{ 
    Start New Intent A (so the changes take effect on the Main Menu even if you press back). 
} 

D - onBackPressed() 
{ 
    Start New Intent A 
    finish(); 
} 

E - onBackPressed() 
{ 
    Start New Intent A 
    finish(); 
} 

F - Nothing specific. 
+0

Любые предлагаемые изменения, чтобы сделать его более оптимизированным, устраняются! – Danieboy

ответ

0

Вы можете использовать System.exit (0) метод onBackPress()

+1

Вы никогда не должны вызывать System.exit (0). Его более предпочтительным для использования методов, основанных на активности, для выхода из вида finish() – JoxTraex

0

Ну, прежде всего, вы можете переключиться на фрагменты, потому что вы здесь делаете не так полно, что здесь понадобится деятельность. Если вы переключились на фрагменты, легко добавить эти фрагменты в заднюю часть, из которой вы хотите вернуться. Таким образом, вы должны перезаписать onBackPressed() только один раз.

Смежные вопросы