Android 解析:一次从不同的表中检索所有数据
我试图从不同的表中提取所有数据,因此我尝试使用这种方法。但是,我知道for循环是同步的,因此在解析获取数据时循环没有停止。有人知道怎么解决吗?是否有任何解析方法或一些意图服务可以帮助这种情况Android 解析:一次从不同的表中检索所有数据,android,asynchronous,parse-platform,Android,Asynchronous,Parse Platform,我试图从不同的表中提取所有数据,因此我尝试使用这种方法。但是,我知道for循环是同步的,因此在解析获取数据时循环没有停止。有人知道怎么解决吗?是否有任何解析方法或一些意图服务可以帮助这种情况 private void getAllInformation(){ String controlName; for(int i=0; i<3;i++){ if(i==0){ controlName = AppConfiguration.strEv
private void getAllInformation(){
String controlName;
for(int i=0; i<3;i++){
if(i==0){
controlName = AppConfiguration.strEvent;
}
else if(i==1){
controlName = AppConfiguration.strStore;
}
else if (i==2){
controlName = AppConfiguration.strPromotion;
}
else{
return;
}
ParseQuery<ParseObject> query = ParseQuery.getQuery(controlName);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objectList, ParseException e) {
if(e!=null){
Toast.makeText(getApplicationContext(),"Error Loading.Please Try Again",Toast.LENGTH_LONG ).show();
return;
}
if (objectList!= null) {
Toast.makeText(getApplicationContext(),"Success",Toast.LENGTH_LONG ).show();
ParseObject.pinAllInBackground(objectList);
}
else{
Toast.makeText(getApplicationContext(),"Some Data is null!",Toast.LENGTH_LONG ).show();
}
}
});
}
// getAllOfflineInformation();
}
private void getAllInformation(){
字符串控制名;
对于(int i=0;i您可以使用锁:
Object lock = new Object();
ParseQuery<ParseObject> query = ParseQuery.getQuery(controlName);
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> objectList, ParseException e) {
synchronized (lock) {
lock.notifyAll();
}
if(e!=null){
Toast.makeText(getApplicationContext(),"Error Loading.Please Try Again",Toast.LENGTH_LONG ).show();
return;
}
if (objectList!= null) {
Toast.makeText(getApplicationContext(),"Success",Toast.LENGTH_LONG ).show();
ParseObject.pinAllInBackground(objectList);
}
else{
Toast.makeText(getApplicationContext(),"Some Data is null!",Toast.LENGTH_LONG ).show();
}
}
});
synchronized (lock) {
lock.wait();
}
对象锁=新对象();
ParseQuery=ParseQuery.getQuery(controlName);
findInBackground(新的FindCallback(){
public void done(List objectList,parsee异常){
已同步(锁定){
lock.notifyAll();
}
如果(e!=null){
Toast.makeText(getApplicationContext(),“加载错误。请重试”,Toast.LENGTH\u LONG.show();
返回;
}
if(objectList!=null){
Toast.makeText(getApplicationContext(),“Success”,Toast.LENGTH_LONG.show();
pinAllInBackground(objectList);
}
否则{
Toast.makeText(getApplicationContext(),“某些数据为空!”,Toast.LENGTH\u LONG.show();
}
}
});
已同步(锁定){
lock.wait();
}
一次性加载整个数据集的错误做法