可能重复:
Android AsyncTask 进度条
我正在使用登录过程,在 tat 时间我从服务器获取数据是延迟的。所以我想为 tat 延迟设置一个进度条。如何设置进度条直到得到服务器的响应。任何知道答案的请帮助我。
可能重复:
Android AsyncTask 进度条
我正在使用登录过程,在 tat 时间我从服务器获取数据是延迟的。所以我想为 tat 延迟设置一个进度条。如何设置进度条直到得到服务器的响应。任何知道答案的请帮助我。
private class LongOperation extends AsyncTask<String, Void, String>
{
protected void onPreExecute()
{
progressDialog = new ProgressDialog(activity.this);
progressDialog.setTitle("Processing...");
progressDialog.setMessage("Please wait...");
progressDialog.setCancelable(true);
progressDialog.show();
}
protected String doInBackground(String... params)
{
try
{
//Getting data from server
}
catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String result)
{
progressDialog.dismiss();
Intent n = new Intent(firstactivity.this, secondactivity.class);
startActivity(n);
}
}
这个怎么称呼
ProgressDialog progressDialog;
LongOperation mytask = null;
mytask = new LongOperation();
mytask.execute();
在您的代码中使用 AsyncTask 并将您的代码放入 doInBackground(....) 进程中。
在 onPreExecute 中显示您的进度对话框并在 onPostExecute(...) 中将其关闭。
将无限进度条视图添加到您的布局中,并首先使其不可见。
创建一个AyncTask
来做服务器通信。
在onPreExecute()
使进度条可见。
onPostExecute()
再次隐藏进度条。
您可以使用AsyncTaskonProcessupdate
的方法
private class GetLogin extends AsyncTask<String, Integer, String> {
ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = ProgressDialog.show("Downloading...");
}
@Override
protected String doInBackground(String... params) {
for (String myUrl : params) {
try {
URL url = new URL(myUrl);
URLConnection ucon = url.openConnection();
ucon.setRequestProperty("Accept", "application/xml");
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
String str = new String(baf.toByteArray(), "UTF8");
return str;
} catch (MalformedURLException e) {
//error
} catch (IOException e) {
//error
}
}
return "All Done!";
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
pd.setMessage("Downloading... (" + values[0] + "%)");
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
progressDialog.dismiss();
}
}