Как закрыть приложение, когда onBackPress в HomeFragment - PullRequest
0 голосов
/ 27 марта 2020

Я хочу закрыть приложение из HomeFragment, но приложение переходит на страницу spla sh.

У меня есть панель навигации, я хочу, чтобы backPress в любом фрагменте перемещался в homeFragment и когда backPress в HomeFragment покажите всплывающее сообщение, чтобы снова щелкнуть назад, чтобы выйти из приложения

Как заставить приложение homeFragment закрыть

Код HomeFragment Java код:

import.....

public class HomeFragment extends Fragment implements IOnBackPressed {
    View view;
    private long backPressedTime;
    private Toast backToast;

    public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {


        homeViewModel = ViewModelProviders.of(this).get(HomeViewModel.class);
        view = inflater.inflate(R.layout.fragment_home, container, false);  ....    }


    @Override
    public void onBackPressed() {
        if (backPressedTime + 2000 > System.currentTimeMillis()) {
            backToast.cancel();
            getActivity().moveTaskToBack(true);
            getActivity().finish();
            System.exit(0);
        } else {
            backToast = Toast.makeText(getContext(), R.string.press_agin, Toast.LENGTH_SHORT);
            backToast.show();
        }
        backPressedTime = System.currentTimeMillis();
    }
}

Ответы [ 3 ]

0 голосов
/ 27 марта 2020

Это потому, что ваша SplashActivity не была завершена, когда вы запустили HomeActivity. Это только пошло на задний план. В SplashActivity позвоните finish() после запуска HomeActivity

.
0 голосов
/ 27 марта 2020

Это происходит потому, что ваша активность spla sh еще не завершена. Добавьте эту строку при запуске активности с экрана spla sh:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
0 голосов
/ 27 марта 2020

Привет Aws Хакам, вы должны вызывать finishAffinity () вместо fini sh () до fini sh всех действий ниже вашей текущей активности в стеке, но помните, что это будет только действия fini sh, которые имеют та же задача и иметь ту же близость. Для деталей go до эта ссылка

activity.finishAffinity();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...