0

这是我的简单 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);
    }

}

试过这个还是不行!事实上,应用程序现在甚至没有响应标准输入!谢谢 !

4

2 回答 2

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函数上,您应该首先调用超级函数,如下所示:

 @Override
    protected void onPostExecute(String result) {        
        super.onPostExecute(result);
        myPd_ring.dismiss();
}

onPostExecute此外,对于您的业务逻辑,您应该在not on中调用 new AsyncTaskdoInBackground

于 2013-07-02T19:30:24.110 回答
0

覆盖方法onPreExecute()

在该方法中创建一个 ProgressDialog 并显示它。onPostExecute()您可以在您还应该覆盖的方法中关闭 ProgressDialog 。在此处查看有关 AsyncTask 的更多信息

不过要小心使用 AsyncTasks,它有一些隐藏的陷阱。看看这篇关于它的文章。

于 2013-07-02T19:07:10.550 回答