1、一般情况下定义一个线程的方式:
new Thread(new Runnable() {
@Override
public void run() {
}
}).start();
2、异步消息处理之Handle
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
public static final int UPDATE_TEXT=1;
private ImageView imageView;
private TextView textview;
private Handler handler=new Handler(){
public void handleMessage(Message msg){
switch (msg.what){
case UPDATE_TEXT:
//在这里进行UI操作
textview.setText("用户信息");
imageView.setImageResource(R.drawable.dl);
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textview= (TextView) findViewById(R.id.text);
imageView= (ImageView) findViewById(R.id.image_view);
Button changeText= (Button) findViewById(R.id.change_text);
changeText.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.change_text:
new Thread(new Runnable() {
@Override
public void run() {
Message message=new Message();
message.what=UPDATE_TEXT;
handler.sendMessage(message);//将message对象发送出去
}
}).start();
break;
default:
break;
}
}
}
Handle处理消息的流程大致如下:i:首先要在主线程中创建一个handle对象,并重写handlemessage方法。
private Handler handler=new Handler(){
public void handleMessage(Message msg){
ii:当子线程中需要进行UI操作时,就创建一个Message对象,并通过handle将这条消息发送出去,由于handle是在主线程中创建的,所以handleMessage方法也会在主线程中进行。