开发者社区> 问答> 正文

如何显示网络加载进度?

当我们加载各种资源时,例如图片,视频等,不能确定要等待的时间,如何获取加载进度?

展开
收起
swyan 2019-05-02 18:01:46 2949 0
4 条回答
写回答
取消 提交回答
  • 除了当前加载进度外,可以根据当前的下载速率navigator.connection.downlink进行更加精细的判断

    2020-03-31 22:14:45
    赞同 展开评论 打赏
  • 程序员。

    进度都是要手动实现的,{已加载大小}/{总文件大小} 来做一个比例。

    2020-03-04 10:43:50
    赞同 展开评论 打赏
  • 从网络请求头一般都是能读到文件大小的,根据已下载大小和耗时估算加载进度呗。

    2020-02-23 15:09:56
    赞同 展开评论 打赏
  • 由于Android的界面更新只能通过自己的UI线程进行操作,所以我们需要用到Handler在进行更新界面的操作。
      
      1、声明变量

    private Handler handler = new Handler();
    private ProgressDialog progressDialog = null;
    

      2、在开始进行网络连接时显示进度条对话框
      progressDialog = ProgressDialog.show(MyActivity.this, "请稍等...", "获取数据中...", true);

      3、在handler.post中进行界面更新
    public void setListAdapter(){
    handler.post(new Runnable() {
    public void run() {
    //将获取到的数据更新到列表中
    MyListView.setAdapter(saImageItems);

    }

    }
    });

    4、开个新的线程进行网络连接获取数据

    new Thread(new Runnable(){
    
    @Override
    public void run() {
    // TODO Auto-generated method stub
    //向服务器请求数据
    mapList=MyAPI.getAllDatas();
    setListAdapter(mapList);
    //更新完列表数据,则关闭对话框
    progressDialog.dismiss();
    }}).start();
    
    2019-07-17 23:34:41
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Session:更加安全、可靠的数据中心网络产品更新 立即下载
Session:极简易用的全球化网络产品更新 立即下载
Session:弹性、高可用、可观测的应用交付网络产品更新 立即下载