1)使用Activity.runOnUiThread(Runable action)方法
情景一:
在主线程中,定义方法,在方法中启动线程。
public class MainActivity extends Activity { //... private void myTask() { Thread mThread = new Thread() { //new thread public void run() { sleep(1000); //更新UI runOnUiThread(new Runnable() { @Override public void run() { mTextView.Text="123"; } }); }; }; mThread.start(); } }
情景二:
通过自定义线程类,实现线程操作,线程通过句柄访问UI线程。(耦合性更低)
public class XxThread extends Thread { //定义UI线程句柄 Handler UIHandler = new Handler(Looper.getMainLooper()); //线程主函数 public void run() { //更新UI UIHandler.post(new Runnable() { @Override public void run() { mTextView.Text="123"; } }); } }
2)使用消息机制