Android 异步操作UI的方法

来源:互联网 发布:网络淘宝兼职怎么赚钱 编辑:程序博客网 时间:2024/04/29 10:09
方法1:Handler
子线程调用Handler的sendMessage(message)发送事件。
Handler handler= new Handler() {
      @Override
      public void handleMessage(Message msg) {
             super.handleMessage(msg);
             //操作界面
          textView.setText("zhangkai281");
   }
 };


public class MyThread extends Thread {
     public void run() {
  // 耗时操作
loadNetWork();
            Message msg = new Message();
            handler.sendMessage(msg);//向Handler发送消息,
      }
 }
方法2:AsyncTask
//UI线程中执行
new DownloadImageTask().execute( "www.91dota.com" );


private class LoadTask extends AsyncTask {
protected String doInBackground( String... url ) {
        return loadDataFormNetwork( url[0] );//后台耗时操作
}


protected void onPostExecute( String result ) {
      myText.setText( result ); //得到来自网络的信息刷新页面 


}
方法3:View.post(Runnable )
public void onClick( View v ) {
        new Thread( new Runnable() {
                public void run() {
                       // 耗时操作
      loadNetWork();
                          myText.( new Runnable() {
                                  myText.setText( 来自网络的信息);
                          });
                 }
        }).start();
}
方法4:Activity.runOnUiThread(Runnable )   与view.post类似
public void onClick( View v ) {
        new Thread( new Runnable() {
                public void run() {
                       // 耗时操作
    loadNetWork();
                         Activity.runOnUiThread.( new Runnable() {
                                  myText.setText( 来自网络的信息);
                          });
                 }
        }).start();
}
0 0
原创粉丝点击