• (Android实战)ProgressDialog+Thread实现弹出进度条数据异步加载(配有效果图)


    效果图

     

     

     

    实现说明

     

       实现流程

     

      Step One 弹出进度条对话框

     

      Step Two 执行线程,在线程中实现数据的异步加载

     

      Step Three 在线程数据加载完成后,调用Handler并集合数据,更新界面

     

     

     

    3源码

     

     

    复制代码
    //添加异步操作  
    m_Dialog=ProgressDialog.show(m_context, "请等待...", "正在下载安装文件,请稍后...",true);
    //mRegsiterHandler.sleep(100);
    new Thread(new Runnable(){

    @Override
    publicvoid run() {
    //加载数据
    result=0;
    try{
    //下载文件
    String url="http://00.00.00.00:80/nationaltest.html";
    HttpClient client
    =new DefaultHttpClient();
    HttpGet get
    =new HttpGet(url);
    HttpResponse response;

    response
    = client.execute(get);
    HttpEntity entity
    = response.getEntity();
    long length = entity.getContentLength();
    InputStream is
    = entity.getContent();
    FileOutputStream fileOutputStream
    =null;
    if (is !=null) {
    File file
    =new File(Environment.getExternalStorageDirectory(), "nationaltest.apk");
    fileOutputStream
    =new FileOutputStream(file);
    byte[] buf =newbyte[1024];
    int ch =-1;
    while ((ch = is.read(buf)) !=-1) {
    fileOutputStream.write(buf,
    0, ch);
    }
    }
    fileOutputStream.flush();
    if (fileOutputStream !=null) {
    fileOutputStream.close();
    }
    result
    =2;
    }
    catch(Exception ex){
    result
    =-1;
    }

    //更新界面
    // Update the progress bar
    mHandler.post(new Runnable() {
    publicvoid run() {
    if(result==2)
    install();
    else
    Toast.makeText(m_context,
    "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();
    }
    });


    m_Dialog.dismiss();
    }}).start();

    }
    复制代码

     

     

  • 相关阅读:
    实现用户信息的增删改-mongoose数据库操作
    gulp使用流程及常用插件
    Js面向对象动态添加标签页,Tab栏切换
    类似淘宝侧边栏jq代码编写
    jQuery选择器
    jQuery-突出显示案例
    隔行变色加高亮显示
    ajax请求到后台
    LOOK OUT THE HOLE!
    应用keyup监测输入框兼容IE处理
  • 原文地址:https://www.cnblogs.com/firecode/p/2716710.html
Copyright © 2020-2023  润新知