FCM(Firebase Cloud Messaging)の開発中、アプリが実行中かどうかを判別するための論理が必要でした。しかし、アプリの実行状態を区別するのは私の視点からはかなり難しいことでした。
そのため、状態のチェックを比較的容易に行えるように、以下のコードを作成しました。同様の考慮事項に直面している他の人もいるかもしれないと思い、共有します。
Applicationを継承したクラスで、onCreateメソッド内に上記のように記述できます。
activityStackCnt > 0 の場合、フォアグラウンドです。
activityStackCnt == 0 の場合、バックグラウンドです。
これが判別方法です。
実際、アプリが適切にバックボタンを押して閉じられると、カウントがマイナスになり、activityStackCnt == 0 になると考えて設計しました。しかし、静的に宣言されたactivityStackCntは、intのデフォルト値である0で初期化されるため、(偶然か?)任意の画面からタスクを終了してメモリをクリアしても正常に動作しました。
0 개의 댓글:
Post a Comment