在 Android 的 Google App-Engine 中使用 RPC 代理类多次写入(实体)
Posted
技术标签:
【中文标题】在 Android 的 Google App-Engine 中使用 RPC 代理类多次写入(实体)【英文标题】:Write multiple times(Enities) using RPC proxyclass in Google App-Engine from Android 【发布时间】:2012-03-18 06:50:46 【问题描述】:我正在使用 App Engine Connected android Plugin 支持并自定义 Google I/O 中显示的示例项目。成功运行它。我使用代码成功编写了一些从 Android 设备到云端的任务。
CloudTasksRequestFactory factory = (CloudTasksRequestFactory) Util
.getRequestFactory(CloudTasksActivity.this,
CloudTasksRequestFactory.class);
TaskRequest request = factory.taskRequest();
TaskProxy task = request.create(TaskProxy.class);
task.setName(taskName);
task.setNote(taskDetails);
task.setDueDate(dueDate);
request.updateTask(task).fire();
这很好用,我已经测试过了。
我现在想要的是我有一个数组 String[][] addArrayServer
并想将其所有元素写入服务器。我使用的方法是:
NoteSyncDemoRequestFactory factory = Util.getRequestFactory(activity,NoteSyncDemoRequestFactory.class);
NoteSyncDemoRequest request = factory.taskRequest();
TaskProxy task;
for(int ik=0;ik<addArrayServer.length;ik++)
task = request.create(TaskProxy.class);
Log.d(TAG,"inside uploading task:"+ik+":"+addArrayServer[ik][1]);
task.setTitle(addArrayServer[ik][1]);
task.setNote(addArrayServer[ik][2]);
task.setCreatedDate(addArrayServer[ik][3]);
// made one task
request.updateTask(task).fire();
肯定会上传一个任务,即数组的第一个元素。但是在制作新的任务实例时挂起。我对 Google-Appengine 很陌生。调用 RPC 的正确方法是什么,以真正快速上传多个实体?
谢谢。
【问题讨论】:
【参考方案1】:这个问题的答案是 request.fire() 只能为请求对象调用一次,但我每次都在循环中调用它。所以它只会更新一次。简单的解决方案是在循环外调用 fire()。
NoteSyncDemoRequestFactory factory = Util.getRequestFactory(activity,NoteSyncDemoRequestFactory.class); NoteSyncDemoRequest request = factory.taskRequest();
TaskProxy task;
for(int ik=0;ik<addArrayServer.length;ik++)
task = request.create(TaskProxy.class);
Log.d(TAG,"inside uploading task:"+ik+":"+addArrayServer[ik][1]);
task.setTitle(addArrayServer[ik][1]);
task.setNote(addArrayServer[ik][2]);
task.setCreatedDate(addArrayServer[ik][3]);
// made one task
request.updateTask(task);
request.fire(); //call fire only once after all the actions are done...
欲了解更多信息,请查看此问题。GWT RequestFactory and multiple requests
【讨论】:
以上是关于在 Android 的 Google App-Engine 中使用 RPC 代理类多次写入(实体)的主要内容,如果未能解决你的问题,请参考以下文章
com.google.android.maps 在 Android Studio 中不存在
com.google.android.gcm.GCMBaseIntentService 在哪里?
如何在使用 Google 登录按钮时不将 Google 帐户添加到 Android 手机