Android 多线程及多线程中更新控件

Android 多线程中要注意的一点是, 在多线程中不能够更新界面的控件, 因为控件的更新只能由主线程来完成。

但是我们可以通过Handler 这个对象来对主线程中的控件进行更新。

在多线程中如果想更新主线程的控件, 需要向主线程的Handler对象发送一个消息及参数, 让更新在该对象方法中处理。

首先我们要在主Activity中定义一个Handler对象做为成员变量。

public Handler handler = new Handler()       {              @Override           public void handleMessage(Message msg)           {               switch (msg.what)               {               case 0:                   {                       //取出参数更新控件                        textX.setText(msg.getData().getString("x"));                       }                   break;               default:                   break;               }               super.handleMessage(msg);           }                  };  

下面是多线程的部分, 如果不需要更新控件, 可以直接参考这段写多线程。 

//多线程        private Runnable accRunnable = new Runnable()       {           //多线程运行方法            public void run()           {               int x = 0;               while(true)               {                   //异常抓取                    try                   {                       //该部分是传参并更新控件                        Message msg = new Message();                       msg.what = 0;                       Bundle bundle = new Bundle();                       bundle.putString("x", x + "");                       msg.setData(bundle);                       //发送消息到Handler                        handler.sendMessage(msg);                       x++;                   } catch (InterruptedException e)                   {                       e.printStackTrace();                   }               }           }       };  

多线程方法写完后, 我们还需要在要启动它的地方添加方法。

这里就在程序启动时启动线程吧。

这里需要先定义一个成员变量 Thread  accThread;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfpzj.html