2016-01-07 8 views
6

1.私のアプリケーションは2分ごとにデータがローカルデータベース(Azureオフライン同期を使用)に挿入されてから5分ごとデータは、バックグラウンドサービスを使用してAzureデータベースと同期します。Azureの結果を取得する行が挿入され、Azureデータベースに挿入された後にローカルデータベースから行データを削除する

2.各行のデータAZUREサーバーに挿入した後、ローカルデータベースから削除します。

私の質問

1.howは、私は私の各行がサーバーに挿入されている知ることができます。すべての応答はサーバーからクライアントEndに返されます。その他の解決策? 。

2.ローカルSqliteからAzureサーバーに行を削除します(Azureサーバーから挿入された後にコンフォーメーションを取得した後)。

また、Azureメソッドを使用してローカルデータベースに保存されたデータを取得したいとします。

私はサーバーエンドにAzure Cloudを使用しています。

Link I referred for Offline Azure Sync from Sqlite 1については

答えて

4

、あなたが戻ってクライアントにそのデータを与える前に、サーバーの応答を傍受するために、あなたのハンドラを実装することができます(参照: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をループ()メソッドと、カスタムエラーが単にSyncTableクラスを介して行われているローカルストアからデータを取得し、最後に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

を呼んでそれぞれ1について。読み取りと照会の方法は、ほとんどの場合、オンライン版に依存しません。ここではAndroidのQSから持ち上げ例です:

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

MicrosoftはがレコードのUpdatedAtタイムスタンプを使用して最後の同期以降に変更レコードだけを取得するクエリのIDを使用してiOSのincremental syncを提供してきました。マイクロソフトがアンドロイドで同じ機能を提供しているかどうか検索することはできますか?

関連する問題