编写一个Android程序,使用Async Task实现获取网页的html代码,并且使用TextView显示
时间: 2024-06-13 18:04:44 浏览: 19
要使用AsyncTask获取网页的html代码并在TextView中显示,可以按照以下步骤进行:
1. 在布局文件中添加一个TextView组件,用于显示获取到的html代码。
2. 创建一个类,继承AsyncTask类,并指定三个泛型参数,分别为输入参数类型、进度类型和结果类型。在该类中实现doInBackground()方法,该方法中使用HttpURLConnection或HttpClient等类获取网页的html代码,并返回结果。
3. 在该类中实现onPostExecute()方法,该方法中将获取到的html代码设置到TextView组件中。
4. 在Activity中创建该类的实例,并调用execute()方法,传入网页的URL作为参数,启动异步任务。
下面是示例代码:
```
public class HtmlTask extends AsyncTask<String, Void, String> {
private TextView textView;
public HtmlTask(TextView textView) {
this.textView = textView;
}
@Override
protected String doInBackground(String... urls) {
String result = "";
try {
URL url = new URL(urls[0]);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
result += line;
}
reader.close();
in.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result) {
textView.setText(result);
}
}
```
在Activity中调用该类的示例代码如下:
```
TextView textView = findViewById(R.id.text_view);
HtmlTask task = new HtmlTask(textView);
task.execute("http://www.example.com");
```