java 开发Android的APP,开启线程读取数据,一但网络中断,APP便停止运行,请问如何解决?
代码如下::Handlerhandler=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){//获取数据...
代码如下::
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
//获取数据的后续操作
showlist();
super.handleMessage(msg);
}
};
class LoadFailureHandler implements Runnable {
public void run() {
showurl();
handler.sendEmptyMessage(0);
};
};
//以下是线程开启,读取数据
Thread loadThread = new Thread(new LoadFailureHandler());
loadThread.start();
问题1: 在网络正常的情况下,本程序可以正常运行,一但网络中断,线程开启便APP便立即停止运行,请问如何解决?
问题2: 在读取数据的过程中,如果数据没有下载完,我再次开启线程读取数据,APP也会立即停止运行,请问如何解决?
请勿复制粘贴答案,谢谢各位大神! 展开
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
//获取数据的后续操作
showlist();
super.handleMessage(msg);
}
};
class LoadFailureHandler implements Runnable {
public void run() {
showurl();
handler.sendEmptyMessage(0);
};
};
//以下是线程开启,读取数据
Thread loadThread = new Thread(new LoadFailureHandler());
loadThread.start();
问题1: 在网络正常的情况下,本程序可以正常运行,一但网络中断,线程开启便APP便立即停止运行,请问如何解决?
问题2: 在读取数据的过程中,如果数据没有下载完,我再次开启线程读取数据,APP也会立即停止运行,请问如何解决?
请勿复制粘贴答案,谢谢各位大神! 展开
2个回答
2015-08-18 · 知道合伙人软件行家
关注
展开全部
是这样的,你在线程中读取网络数据,如果网络中断了,就会抛出一系列的异常
这时候,你就要捕获这些异常做不同的提示
以下是一些网络连接中常见的异常
// 处理网络异常
public String ExceptionCode(Exception e) {
if(e instanceof HttpException) {
return context.getString(R.string.networkFailure); // 网络异常
}else if (e instanceof SocketTimeoutException) {
return context.getString(R.string.responseTimeout); // 响应超时
}else if (e instanceof ConnectTimeoutException) {
return context.getString(R.string.requestTimeout); // 请求超时
}else if (e instanceof IOException) {
return context.getString(R.string.networkError); // 网络异常
}else if (e instanceof JSONException) {
return context.getString(R.string.json_error); //json格式转换异常
}else {
return context.getString(R.string.canNotGetConnected); // 无法连接网络
}
}
已经封装好了,你直接调用就好了
更多追问追答
追问
你好,请问如何调用呢?能否帮忙写一下,完善到我的代码中?谢谢您!
追答
你把代码发我看看,我帮你改一下吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询