我在 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”返回更新后的数字?
编辑:我听说过对象监听器(听一些动作)。我需要学习如何为这个场合制作它们还是有其他解决方案?