调用popBackStack()时屏幕冻结

时间:2016-08-30 09:59:17

标签: android fragment freeze fragment-backstack

我有两个片段A& B.
我使用以下代码从A切换到B:

    FragmentManager fragmentManager;
    FragmentTransaction transaction;
    fragmentManager = getActivity().getFragmentManager();
    transaction = fragmentManager.beginTransaction();
    transaction.setCustomAnimations(R.animator.enter_anim, R.animator.exit_anim,R.animator.popenter, R.animator.popexit);
    transaction.replace(R.id.fragmentLayout, new B())
            .addToBackStack("tag").commit();

B包含SQLite操作(SugarORM)。
当从A切换到B时,即使我使用AsyncTask&屏幕,屏幕也会冻结。 IntentService用于数据库操作。
另外,当我按下后退按钮[getFragmentManager().popBackStack();]时,屏幕会在从B切换回A之前冻结几秒钟。
popBackStack动画太不明显了。 我尝试显示不确定的进度条和& imageview中的动画列表,但它们也冻结了&它看起来好像是静态图像。

1 个答案:

答案 0 :(得分:1)

查看有关分析主线程的文章:https://developer.android.com/studio/profile/traceview.html

这将告诉你什么是主线程,这可能是冻结的原因。

另外,请关注@ NishantPardamwar的建议,检查片段的生命周期方法,这些方法在主线程上运行,可能是罪魁祸首。