【发布时间】:2020-01-31 19:33:41
【问题描述】:
我发现我的 AsyncTask 被调用了两次。为了阻止这种情况,在我的MainActivity 中,我已经定义了
public Boolean isloading = false;
并且 asynctask 被称为:
if (!isloading) {
new GetFlickr(MainActivity.this, imageViewWeakReference, MainActivity.this)
.execute(Double.toString(Lat), Double.toString(Long));
}
当 asynctask 在 MainActivity 类中(即在同一个文件中)时,在 PreExecute 中设置 isloading = true 没有问题,如:
@Override
protected void onPreExecute() {
super.onPreExecute();
pBar = new ProgressBar(getApplicationContext());
pBar = findViewById(R.id.progressBar);
pBar.setProgress(0);
pBar.setVisibility(View.VISIBLE);
isloading = true;
}
但是,我已经将 asynctask 移到了一个单独的文件中,并且无法在那里将值设置为 true。
有什么帮助吗?
【问题讨论】:
-
嗨,我已将 asynctask 移动到一个单独的文件中,并且无法在那里将值设置为 true 所以这是你真正的问题,你可以使用
SharedPreference将 true/false 设置为您的变量isloading