Я реализовал свой собственный задний стек, но я не уверен, что не так или что я могу улучшить, мой сценарий: у меня есть проект с двумя действиями, первый из которых - «SplashActivity» - где я загружаю некоторые сетевые данные - вторую, MainActivity.Android - Пользовательская кнопка возврата (задний стек)
Внутри моей основной деятельности У меня есть фрагмент и внутри этого фрагмента веб-просмотр.
кнопка Спина должна вести себя, как:
Когда пользователь не перемещаться внутри моей WebView, закройте приложение.
Когда пользователь просматривает веб-просмотр, используйте историю предыстории browswer.
Вот мой код:
@Override
public void onBackPressed() {
Log.d("lastfragment", String.valueOf(fragmentStack.lastElement().getId()));
if (fragmentStack.size() >= 2) {
// implement normal behavior?
Fragment activeFragment=fragmentStack.lastElement();
FragmentTransaction ft = getFragmentManager().beginTransaction();
activeFragment.onPause();
ft.remove(fragmentStack.pop());
Fragment returnToFragment=fragmentStack.lastElement();
String name = returnToFragment.getClass().getName();
if(name=="SplashScreen" || name=="LoginFragment"){
// close?
}
else {
// implement normal behavior?
returnToFragment.onResume();
ft.show(returnToFragment);
ft.commit();
}
}
else {
//close ??
}
}
Эй, спасибо за ответ, что именно вы имеете в виду под «ВАШ ФРАГМЕНТ ОБЪЕКТ»? – Lara
Фрагмент фрагментОбъект = новый фрагмент(); Первый раз, когда вы передаете свой фрагмент objectObject этому методу замещения, и после этого нажмите кнопку «Назад», которая добавляет в задний стек, теперь его получили. –
Извините, я не понимаю, можете ли вы отредактировать свой ответ с помощью своего кода и моего? спасибо – Lara