如何在android上使用分派操作

如何在android上使用分派操作,android,google-app-engine,gwt,gwt-platform,Android,Google App Engine,Gwt,Gwt Platform,我正在从事一个托管在AppEngine上的项目,对于浏览器客户端,我使用的是GWTP平台,这意味着在客户端上使用GIN,在服务器上使用GUICE。此外,它还使用模型、演示者、动作和事件 我也在考虑为该服务编写一个android客户端,但我不知道如何启动,因为我不知道如何与webservice连接和交换数据。我必须使用用于浏览器客户端的操作和操作处理程序()。在安卓系统中,我只知道如何使用RPC,我无法建立连接,我不知道如何将类从设备映射到服务器 例如,通过使用GWTP,如果在浏览器客户端上我想在

我正在从事一个托管在AppEngine上的项目,对于浏览器客户端,我使用的是GWTP平台,这意味着在客户端上使用GIN,在服务器上使用GUICE。此外,它还使用模型、演示者、动作和事件

我也在考虑为该服务编写一个android客户端,但我不知道如何启动,因为我不知道如何与webservice连接和交换数据。我必须使用用于浏览器客户端的操作和操作处理程序()。在安卓系统中,我只知道如何使用RPC,我无法建立连接,我不知道如何将类从设备映射到服务器

例如,通过使用GWTP,如果在浏览器客户端上我想在服务器上做些什么,我将实现一个Action类、一个ActionResult类(在客户端上)和一个ActionHandler类(在服务器上)。要分派操作,我使用DispatchAsync接口,要获得结果,我使用AsyncCallback

操作(在客户端上)-SendRoadNotification.java:

public class SendRoadNotification extends
    ActionImpl<SendRoadNotificationResult> {

private RoadNotification roadNot;



@SuppressWarnings("unused")
private SendRoadNotification() {
    // For serialization only
    }

public SendRoadNotification(RoadNotification roadNot) {
    this.roadNot = roadNot;
    }

public RoadNotification getRoadNot() {
    return roadNot;
    }
}
ActionHandler(在服务器上)——SendRoadNotificationActionHandler.java:

public class SendRoadNotificationActionHandler implements
    ActionHandler<SendRoadNotification, SendRoadNotificationResult> {

static DataStore ds = DataStore.getDatastoreService();

@Inject
public SendRoadNotificationActionHandler() {
    }

@Override
public SendRoadNotificationResult execute(SendRoadNotification action,
        ExecutionContext context) throws ActionException {

                        //Here I am doing something with that action
    }

@Override
public void undo(SendRoadNotification action,
        SendRoadNotificationResult result, ExecutionContext context)
        throws ActionException {
    }

@Override
public Class<SendRoadNotification> getActionType() {
    return SendRoadNotification.class;
        }
}
以及回调:

AsyncCallback<SendRoadNotificationResult> sendRoadNotifCallback = new AsyncCallback<SendRoadNotificationResult>() {

    @Override
    public void onSuccess(SendRoadNotificationResult result) {


    }

    @Override
    public void onFailure(Throwable caught) {
        Window.alert("Something went wrong");

    }

};
AsyncCallback sendRoadNotifCallback=new AsyncCallback(){
@凌驾
成功时公共无效(SendRoadNotificationResult){
}
@凌驾
失败时的公共无效(可丢弃){
Window.alert(“出错”);
}
};
我如何在android中实现这一点?谁能给我举个例子,或者说以前有过这个问题


我正在使用AppEngine sdk 1.6.4、GWT sdk 2.4.0、适用于Eclipse的GWTP插件和适用于Eclipse的GPE插件。

您可能想看看适用于ADT的GAE插件为“应用引擎连接的Android应用程序”生成的源代码以获得灵感。他们通过使用Android的HttpClient调用GWT端点也在做类似的事情


你好。谢谢,我已经看过这个项目了,但是当它与用于eclipse的GWTP插件集成时,它不能很好地工作。我只需要一个关于如何将gwt平台插件与appengine和Android客户端合并的简短示例。你能帮我一下吗,或者至少给我一个关于一切流程的提示?使用向导创建一个小的测试项目并检查源代码。它可能不适合您的项目,但您将了解如何实现Android方面的功能。@NikolayElenkov您想为客户端创建Android应用程序吗?或者使用相同的应用程序,但使用android webview功能与手机兼容?
    SendRoadNotification action = new SendRoadNotification(rn);
            dispatchAsync.execute(action, sendRoadNotifCallback);
AsyncCallback<SendRoadNotificationResult> sendRoadNotifCallback = new AsyncCallback<SendRoadNotificationResult>() {

    @Override
    public void onSuccess(SendRoadNotificationResult result) {


    }

    @Override
    public void onFailure(Throwable caught) {
        Window.alert("Something went wrong");

    }

};