Останнє оновлення - 25 квітня 2019 р
Новий випуск androidx.activity ver. 1.0.0-alpha07 вносить деякі зміни
Більше пояснень в офіційному посібнику для Android: Забезпечте користувальницьку зворотну навігацію
Приклад:
public class MyFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OnBackPressedCallback callback = new OnBackPressedCallback(true ) {
@Override
public void handleOnBackPressed() {
}
};
requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
}
...
}
Старі оновлення
UPD: 3 квітня 2019 р
Тепер це спрощено. Більше інформації тут
Приклад:
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), this);
@Override
public boolean handleOnBackPressed() {
return true;
}
Не підтримується (з версії 1.0.0-alpha06, 3 квітня 2019 р.):
Так як це , вона може бути реалізована тільки з допомогою JetPack реалізації OnBackPressedCallback
в вашому фрагменті і додати його до діяльності:
getActivity().addOnBackPressedCallback(getViewLifecycleOwner(),this);
Ваш фрагмент повинен виглядати так:
public MyFragment extends Fragment implements OnBackPressedCallback {
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getActivity().addOnBackPressedCallback(getViewLifecycleOwner(),this);
}
@Override
public boolean handleOnBackPressed() {
return true;
}
@Override
public void onDestroyView() {
super.onDestroyView();
getActivity().removeOnBackPressedCallback(this);
}
}
UPD:
Ваша активність повинна розширюватися AppCompatActivity
або FragmentActivity
у файлі Gradle:
implementation 'androidx.appcompat:appcompat:{lastVersion}'