andorid进度条使用
关于android进度条
初始化页面时,如果需要从数据库加载数据等消耗时间的操作,一般都需要进度条,这里是进度条使用的2种方式比较
实现方式1:
进入页面后弹出进度条,异步加载数据完毕后关闭并渲染页面
代码大致如下:
// 进度条
myDialog = ProgressDialog.show(this, "请稍等片刻", "正在请求数据中", true, true);
//异步加载数据
Thread lodeThread = new Thread(new LodeStationHandler());
lodeThread.start();
//
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 消息值:
if (myDialog != null) {
myDialog.dismiss();
}
//渲染页面
break;
}
}
};
我一般都采用这种方法,优点是异步加载数据,避免数据量稍大造成的UI主线程超时报错,而且没有方式2的问题
实现方式2:
在上个页面就打开进度条,这时两种选择:1.在离开上个页面时关闭进度条;2.网上见有人在下个页面初始化后关闭上个页面的进度条,没试过
//关闭的handler
private Handler handler = new UIHander();
private final class UIHander extends Handler {
public void handleMessage(Message msg) {
switch (msg.what) {
case EVENT_TIME_TO_CHANGE_IMAGE:
if (myDialog != null) {
myDialog.dismiss();
}
break;
}
}
}
//开启进度条
myDialog = ProgressDialog.show(MainMenuActivity.this, "",
"loading...", true, true);
//进下一个activity
startActivity(intentPage);
message = handler.obtainMessage(EVENT_TIME_TO_CHANGE_IMAGE);
handler.sendMessage(message);
问题:1.startActivity本身并不是耗时操作,耗时操作主要是在页面初始化的时候获得数据,下个页面会有一段时间黑屏或只有背景
2.进度条资源被占用,不能转动