Android 如何在查找url时创建微调器?

Android 如何在查找url时创建微调器?,android,android-widget,spinner,android-webview,progressdialog,Android,Android Widget,Spinner,Android Webview,Progressdialog,我希望用户按下一个按钮 当调用按钮的onClickListener时,我想显示一个微调器,直到抓取网页为止 我不想使用AsyncTask,因为它只能运行一次,而且在检索第一个url结果后,用户很可能会多次单击按钮 那么我该如何用这个监听器来做这件事呢 findIT.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { item = game.g

我希望用户按下一个按钮

当调用按钮的onClickListener时,我想显示一个微调器,直到抓取网页为止

我不想使用AsyncTask,因为它只能运行一次,而且在检索第一个url结果后,用户很可能会多次单击按钮

那么我该如何用这个监听器来做这件事呢

findIT.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        item = game.getText().toString();
        getUserPreference();
        itemLookup.loadUrl(url);
    }
});

您仍然可以使用
AsyncTask
,每次只需创建一个新任务

public void onClick(View v) {
    new DoWhateverTask().execute();
}
否则,您可以使用
Handler
s自己完成。假设已经为UI和工作线程定义了
处理程序
s:

public void onClick(View v) {
    showProgress();
    workerThreadHandler.Post(new Runnable() {
        public void run() {
            doNetworkStuff();  // Which will post progress to the UI thread if needed.
            mainThreadHandler.Post(new Runnable() {
                public void run() {
                    hideProgress();
                }
            });
        }
    });
}

就我个人而言,我认为AsyncTask是一个更好的解决方案。

另外,为了避免触发多个AsyncTask,可以在AsyncTask的
onClick
方法中禁用按钮,并在
onPostExecute
方法中重新启用按钮。如何启用它?