-1

私のアプリは、サービスとしてバックグラウンドでトランジット API から 2 週間に 1 回バス ルートのリストを更新し、そのリストを sharedpreferences に保存します。ユーザーがアプリを初めて起動すると、アプリはバックグラウンドでサービスを開始し、XML データをダウンロードして解析し、ルートを sharedpreferences ファイルに ArrayList として保存します。

ランチャー アクティビティは地図ですが、アプリを初めて起動するときにユーザーが「すべてのバス ルートのリスト」アクティビティに移動すると、XML の解析中に画面が空白になります。データ接続が遅い場合は、しばらくの間空白のままになります。UI にリストを表示する前に、サービスが終了している間に回転ローダーを表示することを考えていましたが、回転ローダーをバックグラウンド サービスに同期する方法がわかりません。この問題へのアプローチ方法に関する提案は大歓迎です。

ありがとう。

4

1 に答える 1

0

通信にはブロードキャスト インテントを使用します。デフォルトでは非表示になっている UI を使用できますがProgressBar、データがまだ存在しない場合は表示します。バス ルート リスト アクティビティに BroadcaseReceiver を登録 (および適切な場所で登録解除) すると、サービスは完了時にブロードキャスト インテントを送信できます。それを受け取るために何も登録されていない場合、それは処理されません。ただし、説明したケースが発生した場合は、データの準備が整ったことが通知されます。スピナーを非表示にして、データを表示します。

于 2016-03-30T00:43:00.230 に答える