Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在HomeFragment中按BackPress时应用程序的关闭程度_Java_Android_Android Fragments_Android Fragmentactivity_Onbackpressed - Fatal编程技术网

Java 在HomeFragment中按BackPress时应用程序的关闭程度

Java 在HomeFragment中按BackPress时应用程序的关闭程度,java,android,android-fragments,android-fragmentactivity,onbackpressed,Java,Android,Android Fragments,Android Fragmentactivity,Onbackpressed,我想从HomeFragment关闭应用程序,但该应用程序会转到启动页 我有导航抽屉,我想在任何片段中按backPress时移动到homeFragment,在homeFragment中按backPress时显示toast消息,再次单击back退出应用程序 如何使homeFragment关闭应用程序 HomeFragment Java代码: import..... public class HomeFragment extends Fragment implements IOnBackPresse

我想从HomeFragment关闭应用程序,但该应用程序会转到启动页


我有导航抽屉,我想在任何片段中按backPress时移动到homeFragment,在homeFragment中按backPress时显示toast消息,再次单击back退出应用程序

如何使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();
    }
}

嘿,你应该调用finishafinity()而不是finish(),来完成堆栈中当前活动下面的所有活动,但记住它只会完成具有相同任务和相似性的活动。有关详细信息,请访问


这是因为当您开始家庭活动时,您的活动尚未完成。这只是背景。在您的SplashActivity中,在启动家庭活动后调用
finish()

因为您的SplashActivity尚未完成,所以在从SplashScreen启动活动时添加以下行:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

从splash启动主活动后,需要调用finish()。@KishanSolanki我有导航抽屉,我想在任何片段中按backPress键时移到homeFragment,在homeFragment中按backPress键时显示toast消息,再次单击back键退出应用程序我有导航抽屉,我想在任何片段中按backPress时移动到homeFragment,在homeFragment中按backPress时显示toast消息,再次单击back退出应用程序
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);