use*_*240 3 android networkonmainthread
我在下面有一些代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
并在Menifest中添加权限:
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
但它有一个例外:NetworkOnMainThreadException,我该怎么办?
在ICS及更高版本上,您无法再在UI线程上执行网络操作.相反,你被迫创建一个新的线程并在那里做你的网络.
可能的工具是Android AsyncTask和普通的Java Thread.
可以在这里找到一个很好的教程:Android线程,处理程序和AsyncTask - 教程
| 归档时间: |
|
| 查看次数: |
8014 次 |
| 最近记录: |