欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Handler实现定时刷新数据,更新UI

程序员文章站 2022-07-14 18:25:18
...

本文章只是自己作为学习记录之用,如有错误之处,请指正,谢谢!

    //定义一个发送json请求数据的代码
     public void SendRequestWithOkhttp() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                     try {
                     ....一些OKhttp请求代码
                         Message  message=handler.obtainMessage();
                         handler.sendMessage(message);
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
                 }
        }).start();

    //在handler中接收Message
    private Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
       ....对message传递过来的数据,进行使用,比如textview.setText()
    };
    //创建一个线程,通过线程发送延迟消息,实现三秒刷新数据的效果
      Runnable runnable=new Runnable() {
       @Override
       public void run() {
           SendRequestWithOkhttp();       //发送请求
           handler.postDelayed(this,3000);//延迟发送消息,实现3秒一次发送数据
       }
       };

在onCreate()中,通过runnable.run(),启动该runnable,开始循环。然后在不用了之后:removecallback(runnable)

如有不正之处,请多多指教,谢谢。