3 AsyncTask 浏览网页
来源:互联网 发布:华为交换机网管软件 编辑:程序博客网 时间:2024/06/05 17:35
--------------------------------.main.java---------------------
package com.example.nn;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
public class MainActivity extends ActionBarActivity {
EditText editText;
class DownTask extends AsyncTask<URL, Integer, String> {
//可变长的输入参数。与AsyncTask.excute()对应
ProgressDialog progressDialog;
//定义记录已经读取行的数量
int hasRead = 0;
Context context;
public DownTask(Context context) {
this.context = context;
}
@Override
protected String doInBackground(URL... params) {
StringBuilder stringBuilder = new StringBuilder();
try {
URLConnection connection = params[0].openConnection();
//打开connection连接对应的输入流,并将它包装成BufferedReader
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()
, "utf-8"));
String line = null;
while((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line + "\n");
hasRead++;
//AsyncTask的方法
publishProgress(hasRead);
}
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(this.context);
//设置对话框的标题
progressDialog.setTitle("任务正在执行中");
//设置对话框显示的内容
progressDialog.setMessage("任务正在。。。请等待");
//设置对话框不能点击“取消”按钮
progressDialog.setCancelable(false);
//设置该进度条的最大进度值
progressDialog.setMax(202);
//设置对话框的进度条风格
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设置对话框的进度条是否显示进度
progressDialog.setIndeterminate(false);
progressDialog.show();
}
@Override
protected void onPostExecute(String result) {
//返回HTML页面的内容
editText.setText(result);
progressDialog.dismiss();
}
@Override
protected void onProgressUpdate(Integer... values) {
//更新进度
editText.setText("已经读取了" + values[0] + " 行");
progressDialog.setProgress(values[0]);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText1);
}
public void getOnclick(View view) throws MalformedURLException {
DownTask downTask = new DownTask(this);
downTask.execute(new URL("http://hao.360.cn/?1004"));
}
}
。。。。。。。。。。。。。。。main.xml。。。。。。。。。。。。。。。。。。。。。。。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:onClick="getOnclick"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="获取质数"
/>
</LinearLayout>
、、记得添加权限:<uses-permission android:name="android.permission.INTERNET"/>
- 3 AsyncTask 浏览网页
- 浏览网页
- 浏览VB6网页类
- T39+Bluetooth浏览网页
- 简单限制浏览网页
- 清网页浏览痕迹
- 浏览网页出现乱码
- 加快网页浏览速度
- 用键盘浏览网页
- w3m 进行网页浏览
- powerpoint2007中浏览网页
- SAP浏览网页
- C#浏览网页源代码
- 使用WebView浏览网页
- 用SAP浏览网页
- 易语言浏览网页
- 网页浏览拾遗
- 使用 WebView 浏览网页
- POJ 3517 约瑟夫问题
- 在django 1.6中使用postgresql的array(1.8版本已直接支持)
- ios 根据当前设备是否横屏进行布局
- 【串口通信】LabVIEW串口通信的一个例子-串口"示波器"
- UVA 12186 Another Crisis 树形DP
- 3 AsyncTask 浏览网页
- 在hexo博客中使用Mathjax写LaTex数学公式
- 数组-11. 猴子选大王(20)
- POJ2533——Longest Ordered Subsequence
- java获取当前日期是星期几
- php mysql 插入数据
- matlab制作GIF之hello world
- HDU 1520 Anniversary party 树上最大权独立集
- android 中判断有无网络连接