我的应用中有一个activity跳转会迟钝一两秒,我的那个activity里就一个viewpager,初始化两个填充的fragment,我想知道什么原因会影响activity加载慢
activity A跳转到B,B的onCreate方法或onResume是不是做了过多的工作,导致跳转迟钝。
你可以通过注释控件初始化来调试,如果发现初始化某个控件或者绑定数据的时候耗时,那就在非UI Thread处理就可以了
应该是有比较耗时的操作,或者布局太复杂导致
看看Viewpager所用的线程是否关闭。
启动新activity时会在onResume执行完毕后才会开始绘制界面,可能是onCreate和onResume中有耗时操作,或者界面布局太复杂导致的,建议用systrace分析可以直观的看到哪段耗时太长。
使用栈来管理activity
onCreate里面执行耗时操作会导致打开变慢。一些相对耗时的操作 能放在UI线程执行的最好还在放在非UI线程执行。
viewpage 第一次加载会加载两个子界面的布局 如果两个自界面的数据多的话 就会卡顿 建议做懒加载 只有滑动到相应的子界面 子界面才开始加载数据 或者 用 tablayout+fragment 不要用viewpage
ViewPager+Fragment 会一次性把两个Fragment 的数据都加载进来 如果Fragment 在复杂点当然浪费时间 取消ViewPager中Fragment的预加载 就行了
注掉一些逻辑,试一试,找到耗时的原因,就自然知道怎么解决了
建议把主线程的耗时操作放在子线程执行