我有两个片段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中的动画列表,但它们也冻结了&它看起来好像是静态图像。
答案 0 :(得分:1)
查看有关分析主线程的文章:https://developer.android.com/studio/profile/traceview.html
这将告诉你什么是主线程,这可能是冻结的原因。
另外,请关注@ NishantPardamwar的建议,检查片段的生命周期方法,这些方法在主线程上运行,可能是罪魁祸首。