android activity启动优化方法
来源:互联网 发布:上海离婚率数据 编辑:程序博客网 时间:2024/06/05 22:42
最近做一个项目,用的viewpage+fragment 模式,由于加载的fragment比较多,加上布局复杂,每次跳转activity的时候,总是会卡顿几秒钟,当然性能好的手机,情况会好很多,经过排查以及实验,记录下方法。一般初始化都会在oncreate()方法中,首先找出哪些控件的初始化比较复杂,提取出来,activity在onresum,fragement 在可见的情况下初始化复杂的控件,那问题来了,每次布局可见时,不是每次都会初始化控件吗,也影响性能啊?没错,这时候我们需要搞一个Boolean flage = true;变量,例如 在
onCreate(){
flage = false;
},
onResume(){
if(!flag){
//此处初始化操作
flag = true;
}},
这样只要没销毁,只会初始化一次,另外,和另一种方法联合使用,更会加快速度,onResume方法改一下:
onResume(){
if(!flag){
Looper.myQueue().addIdleHandler(new MessageQueue.IdleHandler() { //
@Override
public boolean queueIdle() {
//此处初始化操作
return false; //false 表示只监听一次IDLE事件,之后就不会再执行这个函数了.
}
});
flag = true;
}}
Looper.myQueue().addIdleHandler().这个函数用于给Looper中添加一个用于处理Looper空闲时的事件响应-Handle. Looper何时会空闲呢?答案就是当一个Activity的所有初始化的生命周期过程被执行完成,并且界面渲染也完成的时候,Looper里边就没有其他的消息了. 于是我们就可以开始进行初始化了.不早也不晚.
0 0
- android activity启动优化方法
- android(base)Activity启动方法
- Android Native 应用程序启动 Activity 的方法
- Android用Intent启动Activity的方法
- 【Android开机启动Activity或者Service方法】
- Android开机启动Activity或者Service方法
- Android用Intent启动Activity的方法
- 【Android开机启动Activity或者Service方法】
- 【Android开机启动Activity或者Service方法】
- Android开机启动Activity或者Service方法
- android:两种启动activity的方法
- Android开机启动Activity或者Service方法
- Android开机启动Activity或者Service方法
- Android开机启动Activity或者Service方法
- Android开机启动Activity或者Service方法
- Android开机启动Activity或者Service方法
- Android Activity启动的两种方法
- Android开机启动Activity或者Service方法
- Apache Hive
- SELinux app权限配置
- Unable to instantiate Action, categoryAction, defined for 'category_queryJoinAccount' in namespace
- android studio 的一个问题Error:Gradle version 2.2 is required. Current version is 2.14.1. If using the gr
- typeof、toString()总结
- android activity启动优化方法
- 并查集的模版
- require.js入门教程
- JDK动态代理实现原理
- Bootstrap学习-排版
- 深入了解Arras.sort()与Collections.sort()的区别
- 谈谈你对面向对象的理解?
- 用C++11的std::async代替线程的创建
- 全自动安装JAVA SE以及自动配置环境变量脚本