Android 如何在查找url时创建微调器?
我希望用户按下一个按钮 当调用按钮的onClickListener时,我想显示一个微调器,直到抓取网页为止 我不想使用AsyncTask,因为它只能运行一次,而且在检索第一个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
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
方法中重新启用按钮。如何启用它?