android.os.NetworkOnMainThreadException 异常处理
来源:互联网 发布:做假章的软件 编辑:程序博客网 时间:2024/06/05 09:00
android.os.NetworkOnMainThreadException 异常处理
- 博客分类:
- android
在android 4.0上运行时报android.os.NetworkOnMainThreadException异常,在4.0中,访问网络不能在主程序中进行,有三个方法可以解决,一个是在主程序中增加:
第二种采用异步方式:
第三种采用线程的方式(与第二种类似 都是异步的方式)
- //安卓2.3以后访问网络增加内容
- StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
- .detectDiskReads()
- .detectDiskWrites()
- .detectNetwork()
- .penaltyLog()
- .build());
- StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
- .detectLeakedSqlLiteObjects()
- .detectLeakedClosableObjects()
- .penaltyLog()
- .penaltyDeath()
- .build());
第二种采用异步方式:
- private class GeocodeingOnclickListener implements OnClickListener{
- @Override
- public void onClick(View v) {
- new GeocodeingTask().execute();
- }
- }
- private class GeocodeingTask extends AsyncTask<Integer, Integer, Integer>{
- @Override
- protected Integer doInBackground(Integer... params) {
- String url="http://maps.googleapis.com/maps/api/geocode/json?" +
- "latlng=35.95405270,117.30649970&sensor=false";
- //创建一个Httpclient对象
- HttpClient httpClient=new DefaultHttpClient();
- String responseData="";
- try {
- //向指定的Http地址发送请求
- HttpResponse httpResponse=httpClient.execute(new HttpPost(url));
- //取得服务器返回的响应
- HttpEntity httpEntity=httpResponse.getEntity();
- BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(httpEntity.getContent()));
- String line="";
- while((line=bufferedReader.readLine())!=null){
- responseData=responseData+line;
- }
- } catch (ClientProtocolException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- Gson gson=new Gson();
- TestResult result=gson.fromJson(responseData, TestResult.class);
- System.out.println(result.toString());
- return null;
- }
- }
第三种采用线程的方式(与第二种类似 都是异步的方式)
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // 启动线程执行下载任务
- new Thread(downloadRun).start();
- }
- /**
- * 下载线程
- */
- Runnable downloadRun = new Runnable(){
- @Override
- public void run() {
- // TODO Auto-generated method stub
- updateListView();
- }
- };
0 0
- 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 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException异常处理
- android.os.NetworkOnMainThreadException异常处理
- 第二大的数
- 水木行BT578串口蓝牙适配器 AT命令模式使用经验
- 【Struts2】利用JQuery与struts2-json-plugin实现Struts2的Ajax功能并利用JSON传递数据
- Oracle中CHAR、VARCHAR的区别
- PAT A 1095. Cars on Campus (30)
- android.os.NetworkOnMainThreadException 异常处理
- Memcached源码分析 - Memcached源码分析之HashTable(4)
- 二叉树中序遍历
- Github:通过Git创建、同步、合并Fork的步骤
- 搭建Opentaps开发环境并改用MySQL数据库
- WeakReference与SoftReference
- JAVA学习笔记(七)- 值传递与引用传递
- 将数组a中n个整数按反序存放
- 重建二叉树——输入前序、中序遍历构建二叉树并输出后序遍历