子线程无法更新UI
new Thread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "haha", Toast.LENGTH_SHORT).show();
}
}).start();
runOnUiThread
new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "haha", Toast.LENGTH_SHORT).show();
}
});
}
}).start();
handler
创建一个handler 对象
使用handler对象 post一个Runable对象到主线程执行
Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "haah", Toast.LENGTH_SHORT).show();
}
});
}
}).start();
}
handler的延时任务
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
},1000);
打开App,阅读手记