Сообщений отредактировалиAndroid App Не Закрыв Должное Когда Нажатие кнопки Назад
Я запрограммировал андроид приложение в качестве учебного проекта для целей обучения. Я сталкиваюсь с проблемой, когда, когда я нажимаю кнопку «Назад» на основном мероприятии после посещения активности настроек и внесения изменений там (опции флажка), он возвращается к активности настройки. Если никаких изменений в активности настроек нет, и я вернусь к основному действию и снова вернусь, он прекратится. Если я перейду к любому другому действию, а затем вернусь к основному, нажмите снова, он закрывается нормально одним нажатием.
Ниже вы увидите код кнопки «Назад» для активности настроек и основного действия.
user_settings_activity.java (настройки активности):
// When the back button is pressed, it goes back to the previous screen.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
User_Options.java (основная деятельность):
// When the back button is clicked, the user is asked if they want to close the app window or not.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
Пожалуйста, сообщите мне, как к любому другому коду требуется.
Любая помощь, направленная на решение, будет оценена по достоинству.
спасибо.
РЕШЕНИЕ
Во-первых, спасибо всем, кто застрял с этим вопросом, предлагающих ответы и комментарии. Я ценю помощь каждого. Теперь, немного поправившись, мне наконец-то удалось выработать решение. Код ниже.
Настройки активность:
// For the go back button.
public void go_back_butt(View v){
// Goes to main activity.
Intent main_activity = new Intent(getApplicationContext(), User_Options.class);
main_activity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
main_activity.putExtra("EXIT", true);
startActivity(main_activity);
finish();
}
И
// When the back button is pressed, it goes back to the previous screen.
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
Основная деятельность:
// When the back button is clicked, the user is asked if they want to close the app window or not.
@Override
public void onBackPressed() {
super.onBackPressed();
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
Объяснение:
Как @chichiangho упоминалось, мне нужно было взять In- глубинный взгляд в стеке. С моими ограниченными знаниями по таким вопросам я сделал, но сумел выяснить, что по какой-то причине активность настроек не закрывалась должным образом, как я изначально предполагал. Поэтому мне стало интересно, как я могу справиться с этим, сохраняя сохраненные настройки.
Благодаря ответу @kevz и @MFP мне удалось создать работу. Я внедрил кнопку «Назад» (см. Код) и использовал процесс уничтожения в основном действии, чтобы обеспечить правильное завершение работы приложения. Я также передал намерение от активности настроек к основной деятельности, чтобы обеспечить завершение процесса().
Спасибо всем, кто принимал участие, и потратил время, чтобы опубликовать ваши полезные ответы, которые заставили меня думать больше за пределами коробки и узнать о вещах в Android-приложении одновременно. =).
Я прочитал вашу короткую версию и, по-моему, вы не вызываете финиш при переходе ко второму действию –
@Mohit G: r u начало MainActivity в SettingActivity on BackPress? – kevz
Я думаю, что это та самая проблема, что я нашел в своем телефоне, только во время отладки моего приложения он запускается дважды – Androider