IntentService中使用问报错死线程发送消息到一个处理程序

  

在自己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


IntentService中使用问报错死线程发送消息到一个处理程序