1. 通过Handler更新UI:
package com.example.handlerdemo1;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class FiveActivity extends Activity{
private TextView textView;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fivelayout);
textView = (TextView) findViewById(R.id.textView);
new Thread(){
public void run() {
try {
Thread.sleep(2000);
handler.post(new Runnable() {
@Override
public void run() {
textView.setText("ok");
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
}
package com.example.handlerdemo1;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class FiveActivity extends Activity{
private TextView textView;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
textView.setText("ok");
};
};
private void handler2(){
handler.sendEmptyMessage(1);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fivelayout);
textView = (TextView) findViewById(R.id.textView);
new Thread(){
public void run() {
try {
Thread.sleep(2000);
handler2();
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
}
package com.example.handlerdemo1;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class FiveActivity extends Activity{
private TextView textView;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
};
};
private void updateUI(){
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("ok");
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fivelayout);
textView = (TextView) findViewById(R.id.textView);
new Thread(){
public void run() {
try {
Thread.sleep(2000);
updateUI();
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
}
package com.example.handlerdemo1;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class FiveActivity extends Activity{
private TextView textView;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
// textView.setText("ok");// 方法二
};
};
// 方法一
private void handler1(){
handler.post(new Runnable() {
@Override
public void run() {
textView.setText("ok");
}
});
}
// 方法二
private void handler2(){
handler.sendEmptyMessage(1);
}
// 方法三
private void updateUI(){
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText("ok");
}
});
}
// 方法四
private void viewUI(){
textView.post(new Runnable() {
@Override
public void run() {
textView.setText("ok");
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fivelayout);
textView = (TextView) findViewById(R.id.textView);
new Thread(){
public void run() {
try {
Thread.sleep(2000);
viewUI();
} catch (InterruptedException e) {
e.printStackTrace();
}
};
}.start();
}
}