これを行うのは難しいですが正しい方法は、独自のカスタムContentProviderを作成することです。 アプリの場合、Webサービスから受信したすべてのデータを更新し、このContentProviderに通知をプッシュします 。 Activity フォアグラウンドに戻り、ContentProviderによって提供される新しいデータで自身を更新します 。
難しい カスタムのContentProviderを作成するため 大変な作業です。 正しい これは、モバイルアプリケーションの動作とAndroidアーキテクチャに準拠しているためです。たとえば、ユーザーがWebサービスまたは計算量の多いタスクをアクティブにしてから、アプリを閉じたとします。または、プッシュ通知が到着し、アプリのデータを更新して表示する必要があると言います。どちらの場合も、アプリのActivity sはフォアグラウンドではなくなっている可能性がありますが、Service UI以外の操作を実行するために使用できます。その操作の最後に、Service ContentProviderを介してデータに変更を加えます 、およびユーザーがアプリを再度アクティブ化すると、Activity ■ContentProviderから新しいデータを取得します 。
公式チュートリアルを引用するには:
コンテンツプロバイダーは、あるプロセスのデータを別のプロセスで実行されているコードに接続する標準のインターフェースです。
開発者は、ユーザーがいつでもアプリを呼び出して、いつでもそれを閉じることができると常に想定する必要があります。 Activityかどうかに関係なく フォアグラウンドにあるかどうかにかかわらず、アプリのデータを正しく更新して維持する必要があります。
Google独自のアプリは、カスタムのContentProviderを使用します s。 Gmail 特にアプリはそのContentProviderを利用します ネットワーク接続が利用可能なときに新しい電子メールを取得し、電子メールをオフラインで表示します。 Facebook 、WhatsApp &Twitter AndroidアプリもContentProviderを利用します s。