0

約 10 個以上のアクティビティを含むアプリケーションがあります。

バックエンド サーバーとの同期を実行しようとしています。(私はいくつかのデータを送信し、データベースなどに保存するいくつかのデータを取得します)

アプリが表示されている限り、同期を実行し続けたいです。私の問題は、Android で「私のアプリは現在実行中です」という実際の概念がないことです。また、ユーザーは非常に多くの出口点を持つ可能性があるため、どの onPause/onStop にコードを配置すればよいかを判断するのが難しくなります。(ここで間違っている場合は、訂正して説明してください)。

この同期メカニズムから GUI 関連のものを変更しないことに注意してください。

以下のように要約できるいくつかの解決策が提案されました。

  1. サービスを実行し、それを各アクティビティにバインドします。サービスに所有者がいる限り実行され、所有者がいない限り停止します。
  2. 同期には参照カウンターを使用します。同期を実行し、onStart と onStop のそれぞれでカウンターを加算または減算し、カウンターが 0 のときに同期を停止するシングルトン クラスを取得します。
  3. アプリケーション コンテキストをサブクラス化 (または静的変数を作成) して各アクティビティの状態を確認し、各 onResume および onPause 内でチェックを行い、それに応じて同期を開始/一時停止/停止します。

どのアプローチが推奨され、別のアイデアがある場合は、親切に共有してください。

4

1 に答える 1