国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android UI更新的幾種方法總結

2020-02-21 17:22:12
字體:
來源:轉載
供稿:網(wǎng)友

隨著開發(fā)項目的變化,一些入口界面會出現(xiàn)增減、或者內(nèi)容變化、跳轉界面變化等等問題,今天是武林技術頻道小編給大家?guī)淼?a target="_blank">Android UI更新的幾種方法總結。

1、Activity的 runOnUiThread??

textView = (TextView) findViewById( R.id.tv );    new Thread(new Runnable() {      @Override      public void run() {         runOnUiThread(new Runnable() {          @Override          public void run() {            textView.setText( "更新UI了");          }        });      }    }).start();

android Activity runOnUiThread() 方法使用?

2、Handler sendEmptyMessage()

package lib.com.myapplication; import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView; public class MainActivity extends AppCompatActivity {   private TextView textView ;   Handler handler = new Handler( ) {    @Override    public void handleMessage(Message msg) {      super.handleMessage(msg);      textView.setText( "Ui更新了");    }  };   @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);     textView = (TextView) findViewById( R.id.tv );    new Thread(new Runnable() {      @Override      public void run() {        try {          Thread.sleep( 2000 );        } catch (InterruptedException e) {          e.printStackTrace();        }         handler.sendEmptyMessage( 2 ) ;      }    }).start();   }}

3、Handler? post()

package lib.com.myapplication;import android.os.Bundle;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.widget.TextView; public class MainActivity extends AppCompatActivity {   private TextView textView ;   Handler handler = new Handler();   @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);     textView = (TextView) findViewById( R.id.tv );     new Thread(new Runnable() {      @Override      public void run() {        try {          Thread.sleep( 2000 );        } catch (InterruptedException e) {          e.printStackTrace();        }         handler.post(new Runnable() {          @Override          public void run() {            textView.setText( "Ui更新了");          }        }) ;      }    }).start();   }}

在子線程中切換到主線程

new Thread(new Runnable() {  @Override  public void run() {    LogUtil.d( "ttt 11111111111" + Thread.currentThread().getName() );    new Handler(Looper.getMainLooper()).post(new Runnable() {      @Override      public void run() {        LogUtil.d( "ttt 55555555" + Thread.currentThread().getName() );      }    });     LogUtil.d( "ttt 22222222222" + Thread.currentThread().getName() );    LogUtil.d( "ttt 33333333333" + Thread.currentThread().getName() );    LogUtil.d( "ttt 44444444444" + Thread.currentThread().getName() );   }}).start();

  結果

ttt 11111111111Thread-155ttt 22222222222Thread-155ttt 33333333333Thread-155ttt 44444444444Thread-155ttt 55555555main

  可見這種方式可以快速切換線程,從log日志來看,切換到主線程不會阻塞子線程。

4、view Post() 

textView = (TextView) findViewById( R.id.tv );    new Thread(new Runnable() {      @Override      public void run() {        try {          Thread.sleep( 2000 );        } catch (InterruptedException e) {          e.printStackTrace();        }         textView.post(new Runnable() {          @Override          public void run() {            textView.setText( "Ui更新了");          }        }) ;      }    }).start();

上述是武林技術頻道小編為大家介紹的Android UI更新的幾種方法總結,希望對你學習這方面知識有所幫助,也希望大家能一如既往的支持我們。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 聂拉木县| 黔西| 昌邑市| 葫芦岛市| 中宁县| 长沙县| 娄底市| 稷山县| 雷州市| 获嘉县| 浦城县| 大悟县| 灵川县| 怀化市| 当阳市| 抚州市| 西华县| 马鞍山市| 云霄县| 凤台县| 印江| 农安县| 虎林市| 安宁市| 霸州市| 孟津县| 合作市| 隆化县| 河北省| 冀州市| 正镶白旗| 格尔木市| 九龙城区| 海口市| 堆龙德庆县| 股票| 道真| 巴里| 班玛县| 崇文区| 滨州市|