fragment lifecycler

04-17 11:14:49.734 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onAttach: A
04-17 11:14:49.734 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onCreate: A
04-17 11:14:49.735 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onCreateView: A
04-17 11:14:49.744 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onViewCreated: A
04-17 11:14:49.744 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onActivityCreated: A
04-17 11:14:49.744 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onStart: A
04-17 11:14:49.746 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onResume: A
04-17 11:14:49.754 7206-7206/com.example.benjamin.rxjavaproject I/HwPointEventFilter: support AFT
04-17 11:14:49.790 7206-7237/com.example.benjamin.rxjavaproject I/OpenGLRenderer: Initialized EGL, version 1.4
04-17 11:14:49.796 7206-7237/com.example.benjamin.rxjavaproject W/linker: /vendor/lib64/libhwuibp.so: unused DT entry: type 0xf arg 0xe3a
04-17 11:14:49.802 7206-7206/com.example.benjamin.rxjavaproject W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
04-17 11:14:52.654 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onAttach: B
04-17 11:14:52.654 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onCreate: B
04-17 11:14:52.655 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onPause: A
04-17 11:14:52.655 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onStop: A
04-17 11:14:52.655 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onDestroyView: A
04-17 11:14:52.656 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onCreateView: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onViewCreated: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onActivityCreated: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onStart: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onResume: B
04-17 11:14:54.993 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onPause: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onStop: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onDestroyView: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onDestroy: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onDetach: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onCreateView: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onViewCreated: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onActivityCreated: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onStart: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onResume: A


 RxFragmentA rxFragmentA = new RxFragmentA();
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.rl_fragment_container, rxFragmentA)
                .commit();

        rxFragmentA.setOnSwitchFragmentListener(new ISwitchFragmentListener() {
            @Override
            public void switchFragment(BaseRxFragment fragment) {
                getSupportFragmentManager()
                        .beginTransaction()
                        .replace(R.id.rl_fragment_container,fragment)
                        .addToBackStack(fragment.getClass().getSimpleName())
                        .commit();

                fragment.setOnSwitchFragmentListener(new ISwitchFragmentListener() {
                    @Override
                    public void switchFragment(BaseRxFragment fragment) {


                        getSupportFragmentManager()
                                .beginTransaction()
                                .replace(R.id.rl_fragment_container,fragment)
                                .addToBackStack(fragment.getClass().getSimpleName())
                                .commit();


                    }

                    @Override
                    public void backStack() {
                        getSupportFragmentManager()
                                .popBackStack();
                    }
                });
            }

            @Override
            public void backStack() {
                getSupportFragmentManager()
                        .popBackStack();
            }
        });

A. 当添加到fragmentStack, fragment被移除出栈才会走onDestory及onDetach 方法。

B. fragmentA 入栈并打开fragmentB,

04-17 11:14:52.654 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onAttach: B
04-17 11:14:52.654 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onCreate: B
04-17 11:14:52.655 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onPause: A
04-17 11:14:52.655 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onStop: A
04-17 11:14:52.655 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onDestroyView: A
04-17 11:14:52.656 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onCreateView: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onViewCreated: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onActivityCreated: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onStart: B
04-17 11:14:52.665 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onResume: B

B. fragmentB 出栈, 回到fragmentA

04-17 11:14:54.993 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onPause: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onStop: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onDestroyView: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onDestroy: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentB: onDetach: B
04-17 11:14:54.994 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onCreateView: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onViewCreated: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onActivityCreated: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onStart: A
04-17 11:14:54.999 7206-7206/com.example.benjamin.rxjavaproject I/RxFragmentA: onResume: A

小结

Activity, Fragment 实例创建才会走 onCreate方法的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值