gpt4 book ai didi

android - 在类中处理 AsyncTask

转载 作者:行者123 更新时间:2023-11-30 03:52:49 26 4
gpt4 key购买 nike

我正在使用 AsyncTask 类来处理来自服务器的图像以在 ImageView 中显示它
我的代码中有一个“下一步”按钮,用于使用以下代码调用下一张图像:

private class LoadImage extends AsyncTask<Void, Void, Void> {

@Override
protected void onPostExecute(Void result) {

if (imgque != null) {
imgSelectedQue.setImageDrawable(imgque);
if (getActivity() != null) {
adjustResourceEnvelope();
}
}

}

@Override
protected void onPreExecute() {
imgque = null;
imgSelectedQue.setImageDrawable(null);
imgSelectedQue.requestLayout();
}

@SuppressWarnings("deprecation")
@Override
protected Void doInBackground(Void... params) {
InputStream is;
try {
is = (InputStream) new URL(Constants.PLAYER_SERVICE_BASE_URL + "/playerservice"
+ imageurl).getContent();
imgque = Drawable.createFromStream(is, null);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
imgque = null;
e.printStackTrace();
}

return null;

}
}

现在的问题是,如果我点击下一个按钮REPEATEDLY 那么它会多次调用 AsyncTask 并且 ImageView 显示所有图像,如“幻灯片放映”,因为所有 url 图像都在队列中.
有没有办法只显示最后一个 AsyncTask 调用图像?

最佳答案

做这样的事情:

[1] 当您在单击 NEXT 按钮时调用 LoadImage AsyncTask disable NEXT 按钮。

[2] 在LoadImage AsyncTaskonPreExecute() 方法上再次启用 您的NEXT 按钮。

或者,

您也可以使用简单的 FLAG 来实现这些目的。通过将其设置为 true 和 false。

希望对你有帮助。

谢谢。

关于android - 在类中处理 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13891308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com