1. 新线程中使用需要先调用Looper.prepare() ------> 新建一个Looper对象 -----> Looper对象生成时会生成一个消息队列
而Toast的显示是需要消息队列的
例子:
Looper.prepare();
Toast.makeText();
Looper.loop();
2. Service中使用Toast:
必须是与Service绑定的组件要在UI主线程,即该组件需要在可视状态否则处于onStop()状态,这是要直接调用Toast,或者可以通过Handler将Toast显示的Runnable提交给主线程执行(原因只是自己猜想)