从Android异步嵌套类返回值

时间:2013-04-14 23:17:25

标签: java android azure asynchronous

我试图从函数中的嵌套类中返回一个变量,如下所示:

public int getPlan(int planID) {
 int planId;
 TableOperationCallback<Plans> callback = new TableOperationCallback<Plans>() {
          public void onCompleted(Plans plan, Exception exception,ServiceFilterResponse response) {
               if(exception == null){
                    int planId = (int) db.addPlan(plan); //Want to return this value
               } else {
                    Log.e(exception.getMessage(), "ERROR");
               }
          } 
     };
  mPlanTable.lookUp(planID, callback);
  return planId;
}

此方法与Azure Android SDK链接,并且异步调用mPlanTable.lookUp()。因此,planId有时会使用上面的代码返回null。

返回实际值的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

如果lookUp是异步的,那么你永远不会返回它的结果。您需要重构代码,以便在回调中完成使用返回值的任何内容,而不是在那里。