android中施用线程(比如修改textview的text)
android中使用线程(比如修改textview的text)
线程的实现类如下
class UpdateStatus extends Thread { @Override public void run() { super.run(); while (true) { if (i == GlobalValues.AUIO_LENGTH || MODE != TIME) { MODE = 0; updateStatus.stop(); updateStatus = null; break; } Message m = new Message(); m.what = VoiceForm.TIME; VoiceForm.this.handler.sendMessage(m); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
在android的oncreate()方法中添加如下代码
handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case VoiceForm.TIME: i++; myTextView1.setText("正在录音:" + i + "秒"); break; } super.handleMessage(msg); } };
然后在需要用到线程的地方,启动线程就行了
这样做是因为android只能在它自己开的主线程中进行ui操作,用户开启的线程通过Message对象告知handler进行如何操作,相当于用户开启的线程只是起到一个通知作用,在handler的实现类中通过switch与case可实现用户的多种操作