解决异常:android.os.NetworkOnMainThreadException
来源:互联网 发布:开淘宝怎么开 编辑:程序博客网 时间:2024/05/22 09:48
在Android开发中有时候会遇到如题这样的问题,但是在别的手机上调试的时候这个异常不会被抛出,晚上查了资料,原来是Android4.0以后不能在主线程中请求HTTP请求。这个设计是为了防止网络请求时间过长而导致界面假死的情况。解决办法:用线程来操作网络请求。
private class historyThread implements Runnable {public void run(){SoapObject gg=getTransformDataSimple();if(gg!=null){parserTransformData(gg);Message msg = Message.obtain();msg.what=1;handler.sendMessage(msg);}}}
private void QueryBtn(){mProgressBar.setVisibility(View.VISIBLE);mQueryBtn.setBackgroundColor(color.transparent);new Thread(new historyThread()).start();TimerTask task = new TimerTask(){ public void run() { Message message = new Message(); message.what = 404; handler.sendMessage(message); } };Timer timer = new Timer(); timer.schedule(task, 10000); //超时10秒}
Handler handler=new Handler(){public void handleMessage(android.os.Message msg) {if(IS_NETWORK_ERROR){Toast.makeText(mContext, "网络信号异常", Toast.LENGTH_LONG).show();//为了下次验证重新设置为falseIS_NETWORK_ERROR=false;mProgressBar.setVisibility(View.INVISIBLE);}else{switch(msg.what){case 1: mProgressBar.setVisibility(View.INVISIBLE);mQueryBtn.setVisibility(View.VISIBLE);mQueryBtn.setBackgroundResource(R.drawable.button_selector);Toast.makeText(mContext, "查询完毕", Toast.LENGTH_SHORT).show();mHistoryData.setVisibility(View.VISIBLE);mLinearLayout.setVisibility(View.INVISIBLE);SimpleAdapter adapter=new SimpleAdapter(mContext, mData, R.layout.mlist_history, new String[]{"datatime","installlocal","destoried","moved","shocked","approached"}, new int[]{R.id.textview_datatime,R.id.textview_installlocal,R.id.textview_destoried,R.id.textview_moved,R.id.textview_shocked,R.id.textview_approached});mHistoryData.setAdapter(adapter);break;case 404:mProgressBar.setVisibility(View.INVISIBLE);break;default :break;}}}};
0 0
- 解决异常:android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException异常解决
- Android之android.os.NetworkOnMainThreadException异常解决
- /AndroidRuntime(1185): android.os.NetworkOnMainThreadException 异常解决
- android.os.NetworkOnMainThreadException异常如何解决
- AndroidRuntime(1185): android.os.NetworkOnMainThreadException 异常解决
- 帮你解决android.os.NetworkOnMainThreadException异常
- android.os.NetworkOnMainThreadException异常如何解决
- 解决android.os.NetworkOnMainThreadException异常问题
- 解决出现android.os.NetworkOnMainThreadException异常
- android.os.NetworkOnMainThreadException异常
- 异常:android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException异常
- 异常:android.os.NetworkOnMainThreadException
- 异常android.os.NetworkOnMainThreadException
- 异常:android.os.NetworkOnMainThreadException
- 异常:android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException异常
- 格式化输出年月日和星期
- 好看的小说
- Java中守护线程的总结
- Java学习笔记--JPanel的使用
- phpMyAdmin的pma
- 解决异常:android.os.NetworkOnMainThreadException
- unity3d AudioToolKit 音频管理插件使用方法
- 我的Javascript之旅——new关键字的玄机,以及其它
- 新工作
- MD5加密工具
- em算法笔记
- 快速幂(转自百度百科 自用)
- 从文件中读取内容
- UDP的使用示例