有的时候我们需要判断一个activity是否初始化完毕,比如说activity初始化时弹出一个popwindow,直接写的话会报错,这里提供一个方法
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"android:layout_height="fill_parent"
android:id="@+id/main"
android:orientation="vertical" >
</LinearLayout>
/***************** 以下代码用来循环检测activity是否初始化完毕 ***************/
Runnable showPopWindowRunnable = new Runnable() {
@Override
public void run() {
// 得到activity中的根元素
View view = findViewById(R.id.main);
// 如何根元素的width和height大于0说明activity已经初始化完毕
if (view != null && view.getWidth() > 0 && view.getHeight() > 0) {
此处代表改activity已经初始化完毕
// 停止检测
mHandler.removeCallbacks(this);
} else {
// 如果activity没有初始化完毕则等待5毫秒再次检测
mHandler.postDelayed(this, 5);
}
}
};
// 开始检测
mHandler.post(showPopWindowRunnable);
/****************** 以上代码用来循环检测activity是否初始化完毕 *************/