android 网络异步加载数据进度条

在Android应用中,为了提升用户体验,通常会在网络数据异步加载时使用进度条显示加载状态。本文介绍了如何使用ProgressDialog显示加载进度,并通过线程通信实现在后台加载数据的同时,实时更新界面的进度条。示例代码展示了如何在子线程中请求数据并利用Handler进行线程间通信,确保数据加载过程中及时显示进度条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为会在互联网上经常获取数据,所以如果采用同步数据加载的话,那么会严重影响美观,那样用户体验很差 

大数据加载之前 要等半天 并且屏幕是白的   用户会觉得没有加载,加个进度条  数据加载成功 ,进度条就消息。

ProgressDialog progressDialog = null;//首先定义一个dialog

public static final int MESSAGETYPE = 0;//申明一个静态常

private void execute() {

        try { 

            // String dropList = requestCmd("474"); 

            progressDialog = ProgressDialog.show(Balance.this.getParent(), 
                    "请稍等...", "数据正在加载中......", true); 
            new Thread(new Runnable() { 

                @Override 
                public void run() { 

                    //请求网络数据加载实现代码 

                    Message msg_netData = new Message(); 

                    msg_netData.obj = dropList;//传送数据
                    msg_netData.what = MESSAGETYPE;

                    operate.sendMessage(msg_netData); 
                } 
            }).start(); 

        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
    } 

    private Handler operate = new Handler() { 

        @Override 
        public void handleMessage(Message msg) { 
            // TODO Auto-generated method stub 
                   switch (msg.what) { 
            case MESSAGETYPE: 
                progressDialog.dismiss(); 
                break; 
     default: 
break; 
            } 
      

 };

线程通信必须放在线程内,否则不会提前弹出进步条,也就是下嘛这段代码必须放在线程内

Message msg_netData = new Message();
                    msg_netData.obj = dropList;
                    operate.sendMessage(msg_netData);

如果放在线程外,只会等到所有的数据加载完后同步到界面上显示。

学习更多Android,可以关注http://blog.youkuaiyun.com/qq_28514109
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值