我试图通过遵循此处的一个较早问题的建议来实现异步任务,以便在方法运行时显示进度条(该方法大约需要5秒钟才能完成)
这是异步任务的实现:
public void runTask() {
new YourAsyncTask().execute();
}
private class YourAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... args) {
tableStatus();
return null;
}
@Override
protected void onPostExecute(Void result) {
Loading.setVisibility(View.GONE);
super.onPostExecute(result);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
Loading.setVisibility(View.VISIBLE);
}
}
表状态方法为:
public void tableStatus(){
String tables[] = {"1", "2", "3", "4", "5", "6", "7", "8"};
for(int i=0; i<tables.length; i++){
availableTables(tables[i]);
}
}
availableTables方法是StringRequest方法。
有人对如何解决这个问题有任何建议吗?
答案 0 :(得分:0)
代码对我来说似乎不错,但是如果无法正常工作,显然存在错误。
我正在使用并且可能会为您提供帮助的代码是LinearLayout内的ProgressBar和TextView,因此首先获得LinearLayout:
LinearLayout progressBarLinearLayout = (LinearLayout) findViewById(R.id.progressBar);
progressBarLinearLayout.setVisibility(View.GONE);
然后将其适应您的代码,应该是这样的:
public void runTask() {
new YourAsyncTask().execute();
}
private class YourAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... args) {
tableStatus();
return null;
}
@Override
protected void onPostExecute(Void result) {
progressBarLinearLayout.setVisibility(View.GONE);
super.onPostExecute(result);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressBarLinearLayout.setVisibility(View.VISIBLE);
}
}
我希望这也对您有用。