輕鬆在 Flutter 監聽 APP 的生命週期
這篇寫於 2022 年。工具和 API 變化很快,部分步驟可能已經不適用。
知道APP的畫面在前景還是背景
很常因為一些情境,需要了解目前APP與畫面的狀態,監聽使用情況。當用戶將APP滑到背景時可以停止某些服務以節省資源,或是用來計算用戶的線上時間等等,幫助性能提升與分析。
使用 WidgetsBindingObserver 監聽狀態#
在 initState() 進行監聽#
覆寫 didChangeAppLifecycleState(),監聽最新的APP狀態#
在 dispose() 停止監聽#
resumed#
- 在前景運行,通常顯示著畫面
- 可以跟使用者互動
inactive#
- 非活動狀態
- 在前景時插入其他應用,切到手機的APP選擇頁、子母畫面、電話、下滑的控制中心、系統視窗訊息等
paused#
- 在背景運行
- 無法跟使用者互動,也是非活動狀態
- 舉例:返回桌面的時候,會先更新成
inactive再更新成paused
detached#
- 停止狀態
- APP被返回關閉、銷毀
其他文章#
- Flutter 輕鬆實作 i18n,使用 easy_localization_generator 就對了
- Flutter CICD 使用 Gitlab Runner 和 App Center 實作 part.1
- 使用 CodeMagic 和 Firebase 實現 Flutter CICD
- 輕鬆完成Flutter開發環境,最新版!
- 實作Flutter多變有趣的滾動效果CustomScrollView!
- 如何在Flutter使用 Makefile 節省你的時間?
- Easily understand StatefulWidget LifeCycle of Flutter
- “freezed” makes model class strong and easily
- 提高Flutter性能的小技巧!(一)
- 提高Flutter性能的小技巧!(二)
- 提高Flutter性能的小技巧!(三)
- What are Async and Isolates in Flutter?
- LoadBalancer is optimization for Isolates in Flutter
- Riverpod 輕鬆學,原來這麼好用!
- Riverpod 輕鬆學(二),一些進階用法!
關於我#
- GitHub: chyiiiiiiiiiiii
- Instagram: flutterluvr.yii
- Linkedin: yiichenhi
- Youtube: Yii
- Youtube: 一起饅頭(美食頻道)
- Email: ab20803@gmail.com
贊助#
謝謝你花費時間看完,非常感謝!
如果覺得文章不錯的話可以贊助,讓我有更多動力和熱情分享學習紀錄和生活!請我喝一杯咖啡吧~
最後#
希望有幫助到你/妳,歡迎追蹤我,方便瀏覽最新的文章~
本文原刊登於 Medium。