android - 从 Azure 获取结果,插入一行并在插入 Azure 数据库后从本地数据库删除行数据

标签 android azure azure-storage azure-mobile-services

1.我的应用程序是每 2 分钟数据插入本地数据库(使用 Azure 离线同步),然后每 5 分钟数据通过后台服务同步到 Azure 数据库。

2.每一行数据插入AZURE服务器后,我想从本地数据库中删除。

我的问题:

1.我如何知道我的每一行是否已插入到服务器中。任何响应都会从服务器发送回客户端。还有其他解决方案吗? .

2.删除从本地Sqlite插入Azure服务器的一行(获取从Azure服务器插入的确认后)。

我还想使用 Azure 方法检索本地数据库中保存的数据。

我正在使用 Azure Cloud 作为服务器端。

Link I referred for Offline Azure Sync from Sqlite

最佳答案

对于 1,您可以实现处理程序以在将数据返回给客户端之前拦截服务器响应(请参阅: https://github.com/Azure/azure-mobile-apps-android-client/blob/ef4759078cb031de9a5cbb05d07dc52322952ac1/sdk/src/sdk/src/main/java/com/microsoft/windowsazure/mobileservices/table/sync/synchandler/SimpleSyncHandler.java )

public class MySyncHandler implements MobileServiceSyncHandler {

@Override
public JsonObject executeTableOperation(RemoteTableOperationProcessor processor, TableOperation operation) throws MobileServiceSyncHandlerException {
    try {
        return operation.accept(processor);
    } catch (Throwable e) {
        throw new MobileServiceSyncHandlerException(e);
    }
} 

如果操作没有抛出异常,则意味着 HTTP 请求成功,因此您可以继续删除该项目。

要删除一行,您不想使用同步表,因为它会跟踪操作。您可以使用直接 SQL 连接来执行此操作。另一种选择是更新上述函数以引发自定义错误而不是返回。这将使错误上升到处理程序中的下一个方法 (onPushComplete)。

使用 TableOperationError 类,可以使用同步上下文上的内置方法轻松取消操作并丢弃本地项目。

因此循环遍历 getOperationErrors() 方法,对于每个自定义错误,只需调用 cancelAndDiscardItem 方法 ( https://github.com/Azure/azure-mobile-apps-android-client/blob/ef4759078cb031de9a5cbb05d07dc52322952ac1/sdk/src/sdk/src/main/java/com/microsoft/windowsazure/mobileservices/table/sync/MobileServiceSyncContext.java#L283 )

最后,通过 SyncTable 类从本地存储中检索数据。读取和查询方式与网上版本大体相同。以下是来自 Android QS 的示例:

    Query query = QueryOperations.field("complete").eq(val(false));
    return mToDoTable.read(query).get();

关于android - 从 Azure 获取结果,插入一行并在插入 Azure 数据库后从本地数据库删除行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649547/

相关文章:

android - GreenDAO - 多列上的主键

azure - Windows Azure - 内部 IP 地址有什么用?

c# - 通过 wcf 将大文件流式传输到 azure 失败

python - 通过流下载 azure blob - 导出 137

Android 从一个按钮打开菜单

被杀死的应用程序上的 Android 8 Geofences

Azure构建管道: reference predefined variable from expression

具有 key 轮换功能的 Azure KeyVault

azure - 列出 Blob 内的文件?

java - Android,实际时间问题