AsyncHttpClient放在子线程执行时抛出异常的解决方法
来源:互联网 发布:获取数组赋值的长度 编辑:程序博客网 时间:2024/05/16 02:10
我们的初衷是想在Android每隔一秒get或post一次,但是get/post的代码放在计时器/子线程里就报错了。
原方法
try {
new Thread(new Runnable() {@Override
public void run() {
//执行AsyncHttpClient的get或post函数
funHttp();
}}).start();
} catch (Exception e) {
e.printStackTrace();
}
此时,会抛出异常:
java.lang.IllegalArgumentException: Synchronous ResponseHandler used in AsyncHttpClient. You should create your response handler in a looper thread or use SyncHttpClient instead.
原因是:AsyncHttpClient本事是异步机制,但是同步的ResponseHandler用在了异步的http客户端上,你需要给你的线程创建一个looper或者使用SyncHttpClient。
解决方法是添加一个handle。
final Handler m_handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.arg1 == 0) {
//执行AsyncHttpClient的get或post函数
funHttp();
}
}
};
try {
new Thread(new Runnable() {
@Override
public void run() {
Message msg = m_handler.obtainMessage();
msg.arg1 = 0;
m_handler.sendMessage(msg);
}
}).start();
} catch (Exception e) {
e.printStackTrace();
}
- AsyncHttpClient放在子线程执行时抛出异常的解决方法
- 【捕获Java线程池执行任务抛出的异常】
- 捕获Java线程池执行任务抛出的异常
- Java线程池执行的任务抛出异常看不到日志
- Java编程时主线程如何捕获子线程抛出的异常
- WPF的TreeView执行ExpandSubtree时抛出异常System.NullReferenceException
- 数据库中可以执行的sql语句,在程序中执行抛出乱码异常
- [转]Java中主线程如何捕获子线程抛出的异常
- Java中主线程如何捕获子线程抛出的异常
- 【Java 多线程】Java中主线程如何捕获子线程抛出的异常
- DLL/COM抛出内部异常的解决方法
- 报异常抛出InvocationTargetException的解决方法
- 子线程中却抛出异常:android.view.ViewRootImpl$CalledFromWrongThreadException
- 线程最后退出的时候抛出异常
- java 捕获线程里抛出的异常
- runnable的线程抛出异常无法捕获
- 获取线程中抛出的异常信息
- 线程中异常抛出的一些问题
- ORA-01555补充
- uestc 1222 Sudoku 搜索
- 解决没有my.ini配置文件MySql Error Code: 2006 – MySQL 服务器已离线错误
- 文章标题
- 反射(二)---newInstance、get\set、invoke
- AsyncHttpClient放在子线程执行时抛出异常的解决方法
- 两个图片来回切换
- Android 4.4Telephony流程分析SIM卡开机时的初始化
- 杭电HDU1002(大数加法)
- Object-C 实现几种排序算法
- 欢迎使用CSDN-markdown编辑器
- jQuery 1.9后给动态添加的元素绑定事件
- Android设置Settings:预读取设置的选项和更新设置结果【2】
- 利用UIButton简单实现TOM猫