昨天的xml-rpc问题延续。
xml-rpc数据获取在昨天已经找到解决办法了,但是在主线程中调用正常。
后来把这个调用方法写到按钮监听动作里,点击按钮后创建一个子线程来调用这个xml-rpc方法,现在问题是,一调用就报错,错误信息是:
Can't create handle inside thread that has not called Looper.prepare()不知道造成的原因是什么,要怎么解决。PS: 尝试过把Handle myHandle = new Handle(){} 这个写到各个位置都不能解决这个问题,应当不是这个的位置问题。但又找不到问题所在。补充必须使用线程调用的原因:为了让用户看到系统在运行而非假死,需要在点击按钮的时候生成一个ProgressDialog控件,而直接创建的话,在运行的时候根本就不显示,依旧成假死状态,所以必须要用线程来调用远程的数据。

解决方案 »

  1.   

    handler放到主线程里面,子线程只是来调用handler.sendMessage()当然在handler里面也不要进行任何线程的操作
      

  2.   

    或者在handler创建之前调用Looper.prepare()
      

  3.   

    恩 , 线程只负责用Handler发送消息 , 处理部分就放在主线程里面的Handler
      

  4.   

    你说的这个主线程是指写在onCreate里吗?如果不是,我试过了,一样不能用。
      

  5.   

    那个是我在用cocos2d动画引擎的时候引起的,不知道怎么解决,怎么触发touch事件呢
      

  6.   

    android webkit plugin 线程里回调javascript函数时,插件直接崩溃,并提示: WARN/System.err(296): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
    原因是,另外一线程不能更新UI主线程。插件提供同步函数。用这个pluginthreadasynccall,再调用invokeDefault就可以了。