Android での開発中にこのやや奇妙な動作に遭遇し、グーグル検索中に見つけた唯一の答えは、これは設計によるものであり、気にする必要はないということでした。
私のアプリケーションはアクティブなときに位置データをフェッチします。onPause イベントが呼び出されたときに位置情報の更新を停止し、後で onResume イベントが呼び出されたときにフェッチを再開することでバッテリーを節約する方法を実装しようとしていました。
デバッグ中に、電話をロックすると、onPause->onResume が 3 回以上次々に呼び出され、onStop イベントで終了するという奇妙な動作に気付きました。私が見つけることができた唯一の答えは次のようなものでした:それがアンドロイドの仕組みです、気にしないでください。
単純なサブアクティビティを数回停止して再開する必要があることを誰かが説明してくれますか? 特に onResume に深刻なコードを含む大規模なアクティビティの場合、バッテリーの消費量が増えませんか? これを防ぐ方法はありますか?不要な CPU サイクルを防止する if{} ブロックを使用して、少なくともこれらのイベントでコードが呼び出されないことを知っていれば幸いです。
どんな洞察も大歓迎です!