私は Android アプリの設計に取り組んでおり、一般的なパターンと思われるものを実装する方法に関する情報を探していますが、オンラインで情報を見つけることができないようです。
複数のアクティビティを含むアプリケーションを作成します。これらのアクティビティはすべて、ネットワークを介して WiFi デバイスと通信します。したがって、すべてのアクティビティがこの中央の「ネットワーク コミュニケーター」にアクセスする必要があるため、すべてのネットワーク通信コードを保持するサービスを作成する必要があると最初に考えました。すごい!
しかし今、私はバッテリー寿命を節約し、一般的にアプリケーションの邪魔にならないようにしたいと考えています. アプリからのアクティビティがまったく表示されない場合は、ネットワーク コードを実行する必要はなく、ソケットをシャットダウンして待機できます。その後、いずれかのアクティビティが再び表示されるようになったら、その時点で再接続できます。
ここに問題があります。これを行う方法がわかりません。アプリのすべてのアクティビティがいつ非表示になるかを判断するために使用される既存の方法またはパターンはありますか? アクティビティの 1 つが再開または作成されるたびに切断/再接続したくありません。これは、ほとんどの場合、ユーザーがアプリ内を移動してアクティビティを切り替えるためです。この間ずっとネットワーク接続を開いておきたい。
アクティビティがいつ表示され、いつ消えるかを追跡するために、ある種の「参照カウント」メカニズムをサービスに配置できますが、それはやり過ぎのようです。これに対する既存のメカニズムがないことに驚いています。
簡単なものが欠けていたらすみません...