gpt4 book ai didi

java - 如何等待代码执行?

转载 作者:行者123 更新时间:2023-12-02 06:32:47 24 4
gpt4 key购买 nike

我有一些 Java/Android 代码。请查看以下代码:

    @Override
public void onReceive(Context context, Intent intent) {


mInfo.execute();
recentPics= mInfo.getNumberOfRecentPics();


Log.d("LOG", ""+recentPics);
}

mInfo 变量是 AsyncTask 的一个对象,它从 Web 服务器中提取最近的图片数量。它们已成功拉取,但问题是“LOG”在当前执行的代码中显示旧的最近图片数量。例如:

//Receiver execution No1
recentPics = 0;
m.Info.getNumberOfRecentPics() // let's say returns 3
Log.d("LOG", ""+recentPics) // will show 0 at this point of time

//Receiver execution No2
m.Info.getNumberOfRecentPics() // let's say returns 5
Log.d("LOG", ""+recentPics) // will show 3 at this point of time (reads variable from previous execution )

我知道这是因为“LOG”代码在“getNumberOfRecentPics”方法完成其工作之前执行。

问题:我的问题很简单。如何等待代码执行,直到“getNumberOfRecentPics”返回更新后的号码?

编辑:我听说过对象监听器(监听某些操作)。我需要学习如何为这个场合制作它们还是有其他解决方案?

最佳答案

我会这样使用它,只需在需要的地方重写 onPostExecute 或创建自己的接口(interface)

//create a object f your asyncclass and 
//override the onPostExecute where you need it
mInfo = new ASYNCCLASS({
@Override
public void onPostExecute(Object result){
//doSomething
Log.e(...);
}
}).execute();

等待不是答案,因为您不知道 Asynctask 需要多长时间才能结束。上面的代码未经测试,只是伪代码,但它应该显示我的意思。

这里没有我的 IDE,所以如果有人能在必要时更正括号,那就太好了!

问候

关于java - 如何等待代码执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19929489/

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