Toast的显示依赖于当前线程中的Handler,而Handler的创建必须有Looper,在UI线程中,系统自动为我们创建了Looper对象。因而在子线程中,我们必须手动的去创建Looper对象。
子线程中创建Looper:
- Looper.prepare( ); 创建Looper
- Looper.loop( ); 实现消息循环
package com.android.toastdemo;
import android.os.Looper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare(); Toast.makeText(MainActivity.this,"ToastDemo",Toast.LENGTH_SHORT).show();
Looper.loop();
}
}).start();
}
}