在自己IntentSevice继承类中的onHandleIntent方法中写Toast.makeText (getApplicationContext (),“sd不存在”,Toast.LENGTH_SHORT),告诉();时不会有任何提示,logcat中提示“发送消息处理程序在死线程”错误。后从网上差报错原因了解到当一个线程的消息循环已经退出后,不能再给其发送消息不如就会报错。后有从一个网站找到了解决方案,和产生错误的原因。
这里的问题是,你正在创建一个面包在一个线程由IntentService管理。该系统将使用与这相关的处理程序线程来显示和隐藏吐司。
第一个面包将显示正确,但当系统试图隐藏它,onHandleIntent方法完成后,错误“发送消息处理程序在死线程”将抛出,因为面包是创建的线程不再有效,和烤面包不会消失。
这里的问题是,你正在创建一个由IntentService管理的面包内部线程。该系统将使用与此线程关联的处理程序,以显示和隐藏吐司。首先,土司将正确显示出来,但是当系统试图将其隐藏时onHandleIntent方法已经完成,“发送消息处理程序在死线程”的错误将被抛出,因为土司在其上创建的线程不再有效,且面包不会消失。
解决方法:
//, create a handler 用post messages 用,main 线程 ,,,Handler mHandler =, new 处理程序(getMainLooper ()); ,,,mHandler.post (new Runnable (), { ,,,,,,@Override ,,,,,,,public void 运行(),{ ,,,,,,,,,,,Toast.makeText (getApplicationContext(),“测试”,Toast.LENGTH_SHORT),告诉(); ,,,,,,,} ,,,});
引用:http://www.xuebuyuan.com/36739.html