handler的使用实例

来源:互联网 发布:as3 调用js 编辑:程序博客网 时间:2024/06/08 04:41

每次需要根据网络请求或其他耗时操作去更新UI内容的时候都会首先想到使用handler去实现,今天写个最简单的实例,防止以后要写都要先去百度。

先声明自己的thread

  private Thread mThread;

然后写自己的handler

 public Handler mHandler = new Handler() {        @Override        public void handleMessage(Message msg) {           if(msg.what ==1){               Bundle data = msg.getData();               String val = data.getString("value");                //拿到数据之后在这里写更新UI的操作                //textView.setText(val);           }         }    };

然后就是Runnable了

    Runnable runnable = new Runnable() {        @Override        public void run() {            //这里最好写成函数,在其他你需要的地方传入你的handler            //如ParseData.getResult(jsonStr, mHandler);            Message msg = new Message();            //用bundle写入你要传的数据            Bundle data = new Bundle();            data.putString("value", htmlStr);            msg.what = 1;            msg.setData(data);    };

然后就可以在你的onCreateView里面使用了

 protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        if(mThread == null){            mThread = new Thread(runnable);            mThread.start();        }    }

这样的写法个人觉得比较规范,一般还有下一种写法,直接百度了一个。这个个人觉得在确定thread只会被执行一次的时候使用

new Thread( new Runnable() {         public void run() {              myView.invalidate();         }            }).start();
0 0