Android异步更新UI的方式之使用Handler的post(Runnabel r)方法
由于性能要求,android要求只能在UI线程中更新UI,要想在其他线程中更新UI,给大家介绍一种方式:使用Handler的post(Runnabel r)方法
下面用这种方式更新一个TextView:
1 package com.example.runonuithreadtest; 2 import android.app.Activity; 3 import android.os.Bundle; 4 import android.os.Handler; 5 import android.widget.TextView; 6 public class MainActivity extends Activity { 7 private TextView tv; 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 setContentView(R.layout.activity_main); 12 tv = (TextView) findViewById(R.id.tv); 13 Handler handler = new Handler(); 14 handler.post(new Runnable(){ 15 @Override 16 public void run() { 17 try { 18 //延迟两秒更新 19 Thread.sleep(2000); 20 } catch (InterruptedException e) { 21 e.printStackTrace(); 22 } 23 tv.setText("更新后的TextView"); 24 } 25 }); 26 } 27 }
当然对APP的性能测试,我比较常用的是这个平台:www.ineice.com