android 子線程不用handler 控制UI線程中的組件

子線程控制主線程中的組件使用handler 比較好,但有時也可以用下面的方法來實現同樣的效果:

此處是demo

public class MainActivity extends Activity {

private ImageView IV;
private Button addBtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IV = (ImageView) findViewById(R.id.iv);
addBtn = (Button) findViewById(R.id.btnaddpic);
addBtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

new Thread(new Runnable() {

@Override
public void run() {

// 關鍵就是使用View.post(Runnable)方法;
IV.post(new Runnable() {

@Override
public void run() {
IV.setBackgroundColor(Color.RED);

}
});

}
}).start();

}
});

}

還有最好使用異步任務類:AsyncTask,這種方法也比較好

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *