BufferedReader在Android中不工作
我曾尝试使用BufferReader实例读取网页内容,但在运行应用程序时,当到达以下行时,它会立即移动以捕获块: BufferedReader=新的BufferedReader(新的InputStreamReader(conn.getInputStream()) 你能告诉我有什么问题吗? 顺便说一句,我已经在mainifest文件中注册了一个Internet连接,并且在Log cat中没有注册错误! 这是我的java代码:BufferedReader在Android中不工作,android,Android,我曾尝试使用BufferReader实例读取网页内容,但在运行应用程序时,当到达以下行时,它会立即移动以捕获块: BufferedReader=新的BufferedReader(新的InputStreamReader(conn.getInputStream()) 你能告诉我有什么问题吗? 顺便说一句,我已经在mainifest文件中注册了一个Internet连接,并且在Log cat中没有注册错误! 这是我的java代码: Thread thrd = new Thread( ne
Thread thrd = new Thread( new Runnable() {
@Override
public void run() {
final Button btn = (Button) findViewById(R.id.btn_1);
final TextView tv = (TextView) findViewById(R.id.tv_1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
URL url = null;
url = new URL("http://www.google.com/");
URLConnection conn = url.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String Line = "";
while( (Line= reader.readLine() ) != null){
tv.append(Line);
}
catch (Exception e){
tv.append("There is a problem");
}
}
});
}
});
thrd.start();
return true;
}
您是否尝试记录异常?类似于
Log.d(TAG, "onClick", e);
在你的接球区
话虽如此,您可能会得到一个NetworkOnMainThreadException
,因为您试图在主线程上访问网络。由于网络调用被阻塞,这将导致UI冻结——这是一种非常糟糕的用户体验。所有网络调用都应该在一个单独的线程中完成(可以是服务、异步任务或线程
)
有关
网络维护线程异常的更多信息,请参阅打印您捕获的异常!“有问题”不是一条很有帮助的消息,请您替换tv.append(“有问题”)代码>带有e.printStackTrace()代码>要查看,抛出了什么类型的异常?