gpt4 book ai didi

android - 在 Asynctask 中将 View 作为参数发送

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:37 25 4
gpt4 key购买 nike

我正在编写一个代码,在其中我膨胀 View ,当用户单击一个 View 时,我需要执行解析 URL,然后检查解析是否返回我。问题是我需要在 asynctask 解析中做才能不出现异常,以及我在任务结束前做的检查。

理想的情况是将 View 作为参数发送到 AsyncTask,以将我的所有代码发送到 AsyncTask。但不是如何让这成为最后

我把代码贴出来让大家更容易理解。

vMens.setOnClickListener(new View.OnClickListener() {

public void onClick(View vMens) {
int readOK=0;
try{
new taskMensaje(vMens).execute();

if(mess_gest.equals("1")){
readOK=1;
}else{
readOK=0;
}
}catch(Exception e){
Utils.showDialog(Calendario.this, "Error", "No se puede gestionar el mensaje");
}
if (readOK==0){
Mess.state = message.get(vMens.getId()).p1;
Mess.tittle = message.get(vMens.getId()).p2;
else{
//message no gest
}
}
});
private class taskMensaje extends AsyncTask<String, Void, View> {

@Override
protected String doInBackground(String... params) {
MensajeriaGestionablePARSER parserMensGest = new MensajeriaGestionablePARSER(urlMensGest);
gestionables = parserMensGest.parse();

mess_gest = gestionables.get(0).p0;
return "";
}
}

任何想法来解决这个问题?

感谢并抱歉我的英语不好

最佳答案

您可以将其作为参数传递给构造函数并将其存储在 AsyncTask 对象上。
将它存储为 WeakReference 并在 onPostExecute 上检查它,就像在 http://developer.android.com/training/displaying-bitmaps/process-bitmap.html 上显示来自官方文档的图像的最佳实践一样。

private class TaskMensaje extends AsyncTask<String, Void, Void> {
private WeakReference vRef;
... / your other stuff here

public TaskMensaje (View v) {
vRef = new WeakReference(v);
}


@Override
protected String doInBackground(String... params) {
MensajeriaGestionablePARSER parserMensGest = new MensajeriaGestionablePARSER(urlMensGest);
gestionables = parserMensGest.parse();

mess_gest = gestionables.get(0).p0;
return null;
}

@Override
protected onPostExecute(Void result) {
if (vRef != null && bitmap != null) {
final ImageView imageView = vRef.get();
if (imageView != null) {
// Do whatever you want with your ImageView
...
}
}
}
}

顺便说一句,请参阅 AsyncTask 引用文档以了解如何在类定义中使用泛型参数 ;-)
http://developer.android.com/reference/android/os/AsyncTask.html

关于android - 在 Asynctask 中将 View 作为参数发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159650/

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