首页 热点资讯 义务教育 高等教育 出国留学 考研考公

android中如何实现UI的实时更新

发布网友 发布时间:2022-04-21 17:41

我来回答

2个回答

热心网友 时间:2023-06-26 01:27

1、在主线程中启动一个子线程

首先,我们需要在主线程中启动一个子线程,这个比较简单,直接在MainActivity的onCreate()方法中调用如下方法即可:

new Thread(mRunnable).start();

2、在子线程中发送Message给Handler

在创建子线程时,我们使用了Runnable接口对象mRunnable。这里,只需要实现Runnable接口,并重写该接口的run()方法,在run()方法中实现每1秒发送一条Message给Handler即可。具体实现方法如下:

/*
   * Function   :   实现run()方法,每1秒发送一条Message给Handler
   */
  private Runnable mRunnable = new Runnable() {
      public void run() {
          while(true) {
              try {
                  Thread.sleep(1000);
                  mHandler.sendMessage(mHandler.obtainMessage());
              } catch (InterruptedException e) {
                  e.printStackTrace();
              }
          }
      }
  };

3、Handler接收Message通知

最后,我们创建一个Handler对象,用来接收Message通知。在收到Message通知后,完成刷新UI的操作即可。具体实现方法如下:

/*
     * Function   :   实现handleMessage()方法,用于接收Message,刷新UI
     */
    private Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            refreshUI();
        }
    };

4、刷新UI

由以上的代码可以看出,刷新UI的操作,我们是放在refreshUI()方法中来完成的。refreshUI()方法的实现也很简单,调用HttpUtils工具类中的getInputStream()方法,获得图1所示Web工程的页面内容输入流,再将该输入流转化为字符串,放入TextView控件中进行显示即可。具体实现方法如下:

/*
   * Function   :   刷新UI
   */
  private void refreshUI() {
      try {
          InputStream inputStream = HttpUtils.getInputStream();
          String resultData = HttpUtils.getResultData(inputStream);
          mTextView.setText(resultData);
      } catch (IOException e) {
          e.printStackTrace();
      }
  }

热心网友 时间:2023-06-26 01:28

不知道,你可以百度看看

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com