这是我简单的AsyncTask:
class MyTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String page = null;
try {
page = new Communicator().executeHttpGet(params[0]);
} catch (Exception e) {
e.printStackTrace();
}
return page;
}
如何向此处添加一个显示简单微调器的进度条?每次我尝试代码中断或参数都放错了地方。
编辑:
class MyTask extends AsyncTask<String, Void, String> {
ProgressDialog myPd_ring = null;
@Override
protected void onPreExecute() {
myPd_ring.show();
}
@Override
protected String doInBackground(String... params) {
String page = null;
try {
page = new Communicator().executeHttpGet(params[0]);
} catch (Exception e) {
e.printStackTrace();
}
return page;
}
@Override
protected void onPostExecute(String result) {
myPd_ring.dismiss();
super.onPostExecute(result);
}
}
试过这仍然行不通!事实上,应用程序现在甚至没有响应标准输入! 谢谢!
答案 0 :(得分:1)
@Override
protected void onPreExecute() {
myPd_ring = new ProgressDialog (YourActivityName.this);
myPd_ring.setMessage("Forza Roma");
myPd_ring.show();
}
同时将课程改为
class MyTask extends AsyncTask<String, Integer, String>
并且在onPostExecute
函数上你应该首先调用super函数:
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
myPd_ring.dismiss();
}
此外,对于您的业务逻辑,您应该在onPostExecute
而不是doInBackground
上调用新的AsyncTask
答案 1 :(得分:0)
覆盖方法onPreExecute()
在该方法中创建一个ProgressDialog并显示它。
您可以在方法onPostExecute()
中忽略您应该覆盖的ProgressDialog。详细了解AsyncTask here
小心使用AsyncTasks,它有一些隐藏的陷阱。查看this article了解相关信息。