原因是在创建新线程的时候默认情况下不会去创建新的MessageQueue。
总结下:Toast 显示的必要条件:
1:Toast 显示需要出现在一个线程的消息队列中.... 很隐蔽
private Handler handler;
@Override
public IBinder onBind(Intent intent){
return null;
}
@Override
public void onCreate(){
handler = new Handler(Looper.getMainLooper());
System.out.println("service started");
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "Test",Toast.LENGTH_SHORT).show();
}
});
}
}