这个demo演示了在handler之间传递代码。
demo:下载地址
运行截图:
源码:
package fk.androiddemo_006;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
Button but;
TextView text;
Handler handler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but=(Button)findViewById(R.id.but);
but.setOnClickListener(this);
text=(TextView)findViewById(R.id.text);
}
@Override
public void onClick(View v) {
new TestThread().start();
}
class TestThread extends Thread{
public void run(){
//定义一段代码
Runnable r=new Runnable() {
@Override
public void run() {
text.setText("测试成功!!");
}
};
//post方法执行后,r对象被放到消息队列中,looper(主线程)取出r对象并直接执行r中的run方法,
//但是looper(主线程)并不会新开一个线程,只是在主程序中执行r中run中的程序,相当于把这些语句放到主线程执行
handler.post(r);
}
}
}