#java #android_sdk
При вызове метода onItemClick нужно закрыть текущую Activity. В closeActivity() через this.finish() почему-то Activity закрыть нельзя. Для этого я создал еще один метод, в котором пытаюсь ее закрыть. Но в результате Activity переходит в "спящий режим" и остается в стеке Activity. В чём ошибка? Код методов (сразу с привязкой слушателя к ListView): lvMain.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { Intent i = new Intent(SelectDictionary.this, MainActivity.class); startActivity(i); closeActivity(); } }); private void closeActivity() { this.finish(); }
Ответы
Ответ 1
Согласно тык и документации: В манифесте, в объявлении вашей MainActivity добавляем android:noHistory="true" Теперь покидая эту активити (любым способом, в т.ч. запуская новую) она сама вызывает свой finish() и удаляется из стека активитиОтвет 2
В принципе, да, Activity так устроена, что по умолчанию она засыпает, когда другая стартует. Но можно добавить флаг в Intent, чтобы это поменять: Intent i = new Intent(SelectDictionary.this, MainActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); closeActivity();Ответ 3
Intent intent = new Intent(ThisActivity.this, NewActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(ThisActivity.this, intent);Ответ 4
в конце обработчика напиши эту команду и все super.finish();
Комментариев нет:
Отправить комментарий