您的位置:首页 > 产品设计 > UI/UE

android 在其他线程中更新UI线程的解决方法

2014-07-09 21:45 337 查看
本篇文章是对Android中在其他线程中更新UI线程的方法进行了详细的分析介绍,需要的朋友参考下

方法一:Activity.runOnUiThread(Runnable )

(经验之道: 这个最好用, 凡是要刷新页面的地方,

Activity.runOnUiThread( new Runnable()

    { public void run(){更新UI}}

);

 

方法二:子线程调用Handler的sendMessage(message)发送事件。

复制代码 代码如下:

 

mHandler = new Handler() {  

   @Override  

   public void handleMessage(Message msg) {  

        //操作界面  

       myText.setText( 来自网络的信息);  

      super.handleMessage(msg);  

   }  

  };  

public class MyThread extends Thread {  

     public void run() {  

​    ​    ​    // 耗时操作  

​    ​    ​    ​loadNetWork();  

            Message msg = new Message();  

            mHandler.sendMessage(msg);//向Handler发送消息,  

      }  

 }

 

方法三:View.post(Runnable )

复制代码 代码如下:

 

public void onClick( View v ) {  

        new Thread( new Runnable() {  

                public void run() {  

                       // 耗时操作  

​    ​    ​    ​    ​    ​      loadNetWork();  

​                          myText.( new Runnable() {  

                                  myText.setText( 来自网络的信息);  

                          });  

                 }  

        }).start();  

}

 

方法四:AsyncTask

复制代码 代码如下:

 

//UI线程中执行  

new DownloadImageTask().execute( "www.91dota.com" );  

private class DownloadImageTask extends AsyncTask {  

    protected String doInBackground( String... url ) {  

         return loadDataFormNetwork( url[0] );//后台耗时操作  

    }  

 

    protected void onPostExecute( String result ) {  

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

 

   }  

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: