Flutterメモ:ライフサイクルは必ずしもpaused→resumedの順番ではない
ライフサイクルを使って実装しているのですが、pausedにはならずにresumedになることがあることに考えが及びませんでした。
だから注意しようね、という自分用のメモですm(_ _)m
ライフサイクルとは?
大雑把にいうと、アプリを開いているか閉じているか等のことです。
例えば、ホーム画面に移った、スリープになった、アプリに戻った、を検知できます。
Flutterの主なライフサイクル
・inactive:操作できない不活化状態。電話がかかってきた時、コントロールセンターを開いたときなど。
・paused:画面にアプリが表示されておらず、操作できない状態。バックグラウンドの状態。
・resumed:画面にアプリが表示されていて操作できる状態。
↓ライフサイクルの詳細は公式ページへ
当初、アプリを閉じた時(paused)に値をセットして、アプリを開いた時(resumed)にpausedでセットした値を使って計算する、という実装にしていました。
resumedになるには、その前に必ずpausedがあると思っていたんですが、実際にはpausedを介さずにinactiveからresumedになることがありました。
pausedにならない例
・アプリを開いた状態でコントロールセンターを開く(inactive)→コントロールセンターを閉じる(resumed)
テストをしているときに気づいてよかった...
以上、ありがとうございました