あなたが専門家なので、私はあなたのところに来ることにしました
最初のi am not expert また、i am not knowledgeable 私よりも多くの専門家を見つけることができますが、これは私の意見です hope to give you some help 。
まず、AsyncTaskの使用を忘れてください ダウンロードするのは、あなたのような短いバックグラウンドジョブに使用する必要があるためです。ダウンロードするファイルの量はかなり多いと思います。(そう思います)
downloadmanagerを確認してください それがどのように機能するかを見るためにグーグルのそれがあなたを助けるかもしれません。
https://developer.android.com/reference/android/app/DownloadManager.html
https://blog.vogella.com/2011/06/14/android-downloadmanager-example/
serviceを使用する場合 unbound serviceを使用する ユーザーがアプリを閉じたときにAndroidやユーザーがサービスを破壊したくないからですか?とにかくデータを取得したいと思います。
効率的にするために、次の手順をお勧めします:
a。安らかなサービスを読んで顧客データを取得する
b。顧客データを取得したら、次のことを行います:
-
別のサービスまたはスレッドを作成して、記事データを取得するためのRESTfulサービスを読み取ります
-
古いサービスまたはスレッドのJsonオブジェクトへの応答を解析します
これで、同時に実行される2つのサービスまたはスレッドがあるので、明らかなinsertの手順に従います。 parse など、各サービスまたはスレッドで。
aとdを組み合わせてみませんか?ユーザーはダウンロードの進行状況バーの後ろで多くの時間を待つのが好きではないと思うからです。
データをデータベースに挿入するには、transactionを使用します 使用することをお勧めします:
https://greendao-orm.com/
より効率的なORM データベースに関しては他のデータベースよりも優れており、データベースの実装から解放されます。
サービスを開始したアクティビティが明示的にキャンセルされているか、別のアクティビティによって非表示になっている場合、サービスには、プロセスが終了したことをユーザーに通知する方法が必要です。どうすればそれを実装できますか?
使用通知:
https://developer.android.com/training/notify-user/build-notification.html
https://www.tutorialspoint.com/android/android_notifications.htm
https://www.vogella.com/tutorials/AndroidNotifications/article.html
この長い処理はすべてバックグラウンドで行われていますが、何らかのインジケーター(ProgressDialog)を表示する必要があります。これが、バウンドサービスの使用を選択した理由です`
アンバウンドサービスからUIを更新するにはどうすればよいですか? `
LocalBroadCastManagerを使用する 、または一般的にBroadCastReciever
サービスからのAndroidアップデートアクティビティUI
J2MEでも同様のことを行いましたが、上記の6つのステップのようなものを配置すると、すべてが順番に、つまり次々に実行されます。 Androidでも同じですか?
これはあなたのステップに依存します、あなたが私の考えに従うならば、あなたはconcurrentlyを実行します アイデアを実行する場合は、sequentiallyを実行します 。
幸運を祈ります。