0

私は都市の天気を知るために天気カードを追加することができるアプリで開発しています。都市に都市を設定することもできます。オートプレイスAPI &は、選択した都市の天気を取得することもできます。リモートメソッドサービスを呼び出す方法は?

しかし私の問題は気象データが固定されていないため、時間とともに変化します。だから、ユーザーがその天気カードを作成すると、バックグラウンドで天気データを更新するにはどうすればいいですか?私はバックグラウンドでアップデートを行う必要があります、私はアンドロイドのサービスを使用する必要があると思うが、どこから始めるべきか分からない。

答えて

1

私はここであなたをガイドします。誰もあなたに完全なコードを提供することはありません。私は誰にもそうするよう勧めません。それはあなた自身のためです。あなたはアンドロイドプログラミングの世界を練習し、探求する必要があります。それで、ここに私のガイドラインがあります。

FirebaseJobDispatcherここで問題を解決します。 FirebaseJobDispatcherの方に移動する前に、サービスクラスを作成する必要があります。アンドロイドのサービスでは、thisをチェックしてください。

あなたのserviceクラスについて話しましょう。 FetchWeatherDataクラスFetchWeatherDataはIntentServiceに拡張され、いくつかのメソッドが実装されます。 onCreateの中には、サーバーからデータを取得するためのロジックを記述します。サーバーからデータを取得すると、Databaseに保存されます。データベースに格納する前に、データベースにレコードがあるかどうかを確認する必要があります。そうであれば削除し、新しいレコードをそこに格納します。

あなたのActivityについて話しましょう。それはShowWeatherActivityと言うことができます。レコードがない場合は、データベースにレコードがあるかどうか最初にチェックし、FetchWeatherDataを使用して気象データをダウンロードします。次にそれを示してください。

あなたの質問への回答は非常に長くなることがありますが、私はあなたが同期フローのアイデアを得るのを助けることができるほど説明しようとしました。あなたの問題は、この答えだけを読むことで解決できません。あなたは、私が追加した

(データを格納するための)

  • Sqliteテント・サービス(バックグラウンドで実行されます)
  • (メインスレッドで実行されます)
    1. Services

      これらの概念を通過する必要があります答えの役に立つリンク。それらに従う。これがあなたを幾分助けてくれることを願っています。

  • +0

    このような詳細な回答は非常に@ザイサンです。私はあなたのことが私のためにどのように機能するかを教えてあげます。あなたに感謝できません –

    +0

    @KiranKoravi問題がない場合、これは答えとしてマークしてください –

    +0

    ありがとうございます。それは働いている。私はサーバーからデータを取得し、最後にデータベースに格納するサービスを作成しました。しかし、私はサービスだけを使用しました。 FirebaseJobDispatcherではありませんか?私のデータは、アクティビティが再びロードされたときにのみリフレッシュされます。 cribuzz cricketライブスコアカードのようなアクティビティをロードせずにデータをリフレッシュすることは可能ですか? –