0

我正在写一个 phonegap 插件。我的代码大纲是这样的

public PluginResult execute(String action, JSONArray arg1, String arg2) {
      try{
        if (action.equals("authenticate")) {
           this.startlogin();
           return new PluginResult(PluginResult.Status.OK);
        }
        else {
            return new PluginResult(PluginResult.Status.INVALID_ACTION);
        }
       }catch(Exception e){}
            return new PluginResult(PluginResult.Status.JSON_EXCEPTION); 

    }

startlogin() 方法调用一个注册了回调方法的函数,该回调方法在某个事件后被调用。即 startlogin() 方法返回,但在异步事件发生后调用某个方法。

 public void startlogin(){

    login();//this has callback method
 }

在我从执行方法返回之前如何等到该回调方法完成?java中最好的方法是什么?

PS:我无法更改执行方法原型,因为 phonegap 插件适用于执行方法。

4

2 回答 2

1

在我看来,您正在尝试将同步与异步混合......

你真正应该做的是让回调方法返回 PluginResult。

干杯,

于 2012-10-09T13:10:59.810 回答
0

最简单的方法:

if (this.startlogin()) ...

...

public boolean startlogin(){

    return login();
}
于 2012-10-09T13:10:17.410 回答