ほとんどすべてのアクティビティで JSON を介してさまざまなデータを同期するアプリを開発しています。このデータは他のデバイスによって操作される可能性があるため、可能な限り最新の状態に保つ必要があります。
たとえば、最初のアクティビティで Web サービスにログインし、次のアクティビティで AsyncTask を使用して、ストア内のすべての車種を示す JSON をダウンロードし、その情報を使用して ListView を作成します。1 つの行をクリックして、別の AsyncTask を呼び出して、その車に関する特定の情報 (JSON) をダウンロードし、たとえばタイヤに関する情報を取得します。次のアクティビティでは、別の AsyncTask を呼び出して、それらのタイヤに関する特定の情報を取得します。ほとんどの場合、次のアクティビティで使用するために必要な情報は SharedPreferences に保存されます。これは、アプリ全体で ArrayLists にアクセスする方法がわからず、大量の RAM を使用するかどうかもわからないためです。また、アプリを通じて非常に多くのオブジェクトを共有することをお勧めします。
アクティビティがリロードされるたびに、AsyncTask が接続をチェックし、表示される新しいデータをダウンロードすることがわかります。サービスはプッシュをサポートしていないので、毎回チェックする責任があると思いますよね?
もう 1 つ考慮すべき点は、ダウンロードしたデータが変更される可能性があることです。その場合、JSON をアップロードし、それに応じてビューを更新する必要があります。この側面では、接続がダウンしたときにアップロードする「変更」を保存する方法がわかりません。同様に、同期されていないタスクのキューに入れられたリストを作成します。
その結果、アプリはインターネット接続に大きく依存し、アクティビティが再開されるたびに遅く感じられます。
ほとんどの場合、オブジェクト (車、タイヤなど) の新しい ArrayList をインスタンス化しますが、すべてがオブジェクトになった場合に JSON でデータを適切に同期する方法がわかりません。たぶんGJONを使用していますか?
このようなアプリを管理する方法について、いくつかのヒントが必要です。
ありがとう