【问题标题】:How close app when onBackPress in HomeFragment在 HomeFragment 中 onBackPressed 时如何关闭应用程序
【发布时间】:2020-03-27 11:52:32
【问题描述】:

我想从 HomeFragment 关闭应用程序,但应用程序进入启动页面。

我有导航抽屉,我希望当任何片段中的 backPress 移动到 homeFragment 时,当 HomeFragment 中的 backPress 显示 toast 消息时再次单击以退出应用程序

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

【问题讨论】:

  • 从 splash 开始家庭活动后需要调用 finish()。
  • @KishanSolanki 我有导航抽屉,我希望当任何片段中的 backPress 移动到 homeFragment 时,当 HomeFragment 中的 backPress 显示 toast 消息以再次单击以退出应用程序时

标签: java android android-fragments android-fragmentactivity onbackpressed


【解决方案1】:

嘿 Aws Hakam,您应该调用 finishAffinity() 而不是 finish() 来完成堆栈中当前活动下方的所有活动,但请记住,它只会完成具有相同任务且具有相同亲和力的活动。详情请至this link

activity.finishAffinity();

【讨论】:

    【解决方案2】:

    这是因为你启动 HomeActivity 时 SplashActivity 没有完成。它只去了后台。在 SplashActivity 中,启动 HomeActivity 后调用 finish()

    【讨论】:

      【解决方案3】:

      发生这种情况是因为您的启动活动尚未完成,但在从启动屏幕启动活动时添加此行:

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

      【讨论】:

      • 我有导航抽屉,我希望当任何片段中的 backPress 移动到 homeFragment 并且当 HomeFragment 中的 backPress 显示 toast 消息以再次单击返回以退出应用程序时
      • @awshakam98 你赢了吗? ,我想实现同样的目标,如果你能赢得帮助我,将不胜感激
      猜你喜欢
      • 1970-01-01
      • 2013-01-13
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多