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.进度条资源被占用,不能转动

 

posted on 2012-05-31 16:32  lodestar  阅读(515)  评论(0编辑  收藏  举报

导航