我在下面有一些代码:
protected voID testConnection(String url) { DefaulthttpClIEnt httpclIEnt = new DefaulthttpClIEnt(); httpGet httpget = new httpGet(url); ResponseHandler<String> responsehandler = new BasicResponseHandler(); try { String connection = httpclIEnt.execute(httpget, responsehandler); Toast.makeText(getBaseContext(), R.string.connection_succeed, Toast.LENGTH_SHORT).show(); vIEw_result.setText(connection); } catch(IOException e) { Toast.makeText(getBaseContext(), R.string.connection_Failed, Toast.LENGTH_SHORT).show(); } httpclIEnt.getConnectionManager().shutdown();}
并在Menifest中添加权限:
<uses-permission androID:name="androID.permission.INTERNET"/>
但它是一个例外:
networkonmainthreadException,
我能怎么做?
解决方法:
在ICS及更高版本上,您无法再在UI线程上执行网络 *** 作.相反,你被迫创建一个新的线程并在那里做你的网络.
可能的工具是AndroID的AsyncTask和普通的Java Thread.
可以在这里找到一个很好的教程:Android Threads, Handlers and AsyncTask – Tutorial
总结以上是内存溢出为你收集整理的Android HttpClient:NetworkOnMainThreadException全部内容,希望文章能够帮你解决Android HttpClient:NetworkOnMainThreadException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)