使用Handler更新UI出现的报错

本文介绍了一种在Android应用中从子线程安全更新UI的方法。通过使用Handler机制发送消息,可以避免直接在子线程中更新UI所导致的应用崩溃问题。具体实现了根据不同消息类型更新不同UI组件的功能。

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

private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            int result = msg.what;

            switch (result) {
            case MSGUPDATE:
                getList();
                setViewData();
                Utility.alertTip(context, Utility.FRESHENEDSTATUS);
                break;
            case MSGUPDALOW:
                Utility.alertTip(context, Utility.FRESHENEDSTATUS);
                break;
            case MSGSLEDATE:
                changeShowText();
                break;
            case MSGCHANGEVIEW:
                setSelViewData();
                break;
            }

        }

    };


private void changeShowText(){
        showdate.setText(mYear+"-"+mMouth+"-"+mDay);
        final ProgressDialog mydialog1 = ProgressDialog.show(context,
                "更新数据", "正在加载...", true);
        new Thread() {
            public void run() {
                try {
                    getSelDateList();
                    if(ISReTrueList()){
                        Message msg = new Message();
                        msg.what =MSGCHANGEVIEW;
                        handler.sendMessage(msg);
                    }
                } finally {
                    mydialog1.dismiss();
                }
            };
        }.start();
        
    }

在使用Handler更新UI时时常报的错大部分是  在子线程run中去更新UI


所以要给Handler一个信号 让它去跟新UI


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值