次の手順を実行する必要がある Android アプリを設計しています。
- ユーザーがボタンを押すか、「データの同期」を指示します。
- 同期プロセスは、REST Web サービスを使用してサーバーとの間でデータを移動します。
- データは sqlite データベースにローカルに保存されます。
- 同期プロセスは、ステータスの更新/メッセージを UI に提供する必要があります
- ユーザーがアプリケーションの他の部分に移動して、同期プロセス中にさらに作業を行うことを許可しないでください。
初めて同期プロセスを実行するときは、10 ~ 20 分かかる場合があります。最初の同期後、転送および保存されるデータは少なくなり、プロセスにかかる時間は 1 ~ 2 分以内になると思います。
私はアンドロイドAsyncTask
とサービスを使用するさまざまな例について多くのことを読んできました...しかし、設計上の考慮事項と、ある設計を他の設計よりも選択する際のトレードオフを完全には理解していません。現在、AsyncTask を使用してデモ プロジェクトをスタブ化しています。(ほとんどの) Android REST クライアント アプリケーションの開発を見た後 : http://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html#おそらく私はまだ「理解していない」だけなので、過度に複雑に感じます.
私は、Java、Spring、Web、およびデスクトップ アプリケーションのバックグラウンドを持っています。ハンドヘルド デバイスの観点から考えて設計することは、私にとってまったく新しいことです。(画面レイアウトが変更された場合はどうなりますか?同期の実行中に電話が鳴ったらどうなりますか?) 最初の同期が非常に長時間実行されるプロセスになる場合、2 歩戻って、より良い方法はありますか?私は問題について考えます->解決策、ユーザーエクスペリエンス、電話で実行されているアプリケーションに対するユーザーの期待?
すでにこれらの質問に取り組んでいる、経験豊富な Android 開発者の意見をぜひお聞かせください。