温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android如何解决子线程进度条不显示的问题

发布时间:2021-10-18 14:58:30 来源:亿速云 阅读:137 作者:小新 栏目:移动开发

这篇文章主要为大家展示了“Android如何解决子线程进度条不显示的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android如何解决子线程进度条不显示的问题”这篇文章吧。

不显示进度条的代码逻辑:

首先,新建了一个类,此类有一个内部类,内部类继承Therad

类中有一个普通方法,普通方法执行的时候调用此方法中的内部类。

这时候,展示进度条。

进度条展示在普通方法中,那么实际展示的时间是在内部类执行完成后才展示,这样当然是不行的··

进度条在子线程中展示则报错,百度的方法试过都不行。怎么办呢。

解决方案:

在类中建立一个普通的方法,

方法里直接new出子线程然后start

子线程中通过handler消息机制将耗时操作的数据结果返回给handler

handler接收到消息后作出对应的处理。

handler是可以直接跳转activity的。这点比较重要。

部分代码展示:

handler代码:

Handler handler = new Handler(){

    @Override

    public void handleMessage(Message msg) {

        super.handleMessage(msg);

        if(msg.what==0){

            pb.dismiss();

            String data = (String) msg.obj;

            if(data.equals("0")){

             Toast.makeText(context,"验证失败,请重新登陆",Toast.LENGTH_LONG).show();

                SqliteDao sqliteDao  = new SqliteDao(context);

                sqliteDao.deletebbusinessdocumentlogin();

            }else {

                Toast.makeText(context, "验证成功", Toast.LENGTH_LONG).show();

                Intent intent = new Intent(context, ordergoods.class);

                context.startActivity(intent);

            }

        }

    }

};

子线程返回结果集发送给handler的代码:

handler.obtainMessage(0,returndata).sendToTarget();

以上是“Android如何解决子线程进度条不显示的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI