解决方案 »
- Eclipse启动模拟器的时候如何带上SD卡
- 关于input输入子系统中input_report_key的参数问题
- Android 怎么彻底关闭GPS
- 请教怎么实现文字不拖动的时候就自动垂直滚动?
- AndroidManifest.xml中能否实现“@string/app_name + @string/sub_name”的效果?
- ViewGroup add子view后,当前的viewgroup的宽度没有立即变化!!
- BroadcastReceiver 启动 Server 中的 Context 问题
- jenkins maven android项目打包apk
- 已知直线过两点(w/2,h/4) (w/4,h/2),根据下面,大神们帮我详细解释下K和B是怎么算的?
- 怎么把状态栏的底色改成和应用里标题栏的底色一样
- 打开eclipse就有问题
- android加入权限的问题
我看网上都是这样写的。你百度下,异步加载网络,好多demo的,,,
我看网上都是这样写的。你百度下,异步加载网络,好多demo的,,,
我只是请求一个页面,并没有提交数据,和异步没关系吧。
我只想知道urlConnection.getInputStream()为什么报错
new Thread() {
public void run() {
// 把你的代码都写在这里
}
}.start();
同志们,他报的是空指针异常,而不是network on UI thread异常,在android 4.0以下是可以在UI中进行网络操作的,但毕竟如果耗时的话会引发ANR ,楼主LOG贴的不全,没看出是你代码的哪一行报空指针,看样子InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 这句话是不可能报空指针的啊,除非你在其他地方有线程把urlConnection置空了。
同志们,他报的是空指针异常,而不是network on UI thread异常,在android 4.0以下是可以在UI中进行网络操作的,但毕竟如果耗时的话会引发ANR ,楼主LOG贴的不全,没看出是你代码的哪一行报空指针,看样子InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 这句话是不可能报空指针的啊,除非你在其他地方有线程把urlConnection置空了。public class WebActivity extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wikipedia);
HttpURLConnection urlConnection = null;
try {
URL url = new URL("http://www.baidu.com/");
urlConnection = (HttpURLConnection)url.openConnection();
urlConnection.setDoInput(true);// 表示从服务器获取数据
urlConnection.setDoOutput(true);// 表示向服务器写数据
urlConnection.setConnectTimeout(3000);
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
String result = readInStream(in);
// handleResult(result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
urlConnection.disconnect();
}
}
private String readInStream(InputStream in){
Scanner scanner = new Scanner(in).useDelimiter("\\A");
return scanner.hasNext() ? scanner.next() : "";
}
}没有将urlConnection置空,这是我activity全部的代码
new Thread() { @Override
public void run() {
HttpURLConnection urlConnection = null;
try {
URL url = new URL("http://www.baidu.com/");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);// 表示从服务器获取数据
urlConnection.setDoOutput(true);// 表示向服务器写数据
urlConnection.setConnectTimeout(3000);
InputStream in = new BufferedInputStream(
urlConnection.getInputStream());
String result = readInStream(in);
Log.e("test", result);
// handleResult(result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
urlConnection.disconnect();
}
} }.start();
} private String readInStream(InputStream in) {
Scanner scanner = new Scanner(in).useDelimiter("\\A");
return scanner.hasNext() ? scanner.next() : "";
}
经过测试,这样是没有问题的
在xml文件中添加
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />