【发布时间】:2015-03-15 08:40:30
【问题描述】:
我必须响应截击请求的结果。但因为它是异步的。在我继续之前,我需要等待结果。如果我不这样做,我会得到空对象。
如何设置标志并等到标志关闭。
categoryslashid = new JSONObject[Category_IDs.size()];//size of the list containing all categories
taskfinished = new boolean[Category_IDs.size()];
//boolean is initialized to false
//Request to category/{id} to get
for(int i= 0;i<Category_IDs.size();i++)
{ makevolleyrequesforCategorySlashID(Const.URL_FULL_STOREURL+Const.URL_PRODUCT_GET_CATEGORY_ID,i);
}
public void makevolleyrequesforCategorySlashID(URL,id)
{
//volley implementation
public void onResponseoverride
{
categoryslashid[i]=response;
taskfinished[i]=true;
}
}
现在我必须在任务中的所有布尔值都完成后继续。
public boolean areAllTrue()
{
for(boolean b : taskfinished) if(!b) return false;
return true;
}
【问题讨论】:
-
很不清楚你想要什么。请发布一些代码示例,并更具体地说明您要实现的目标和无效的目标。
-
你为什么不在
onResponseoverride处理你的东西? -
我会试试看,这是在 Asynctask 上调用的:doinBackground() 已经。那我就叫它 onCreate 吧?
标签: java android android-volley