Flutter 開発の実践 - WidgetsBinding はページの前景と背景の終了ステータスを監視します
開発プロセス中、ページの前景と背景の終了ステータスを監視することがよくあります。ここでは WidgetsBinding が使用されます。
1. WidgetsBinding とは何ですか?
WidgetsBinding は Flutter で最も重要なバインディングの 1 つであり、ウィジェット ツリーとの対話を提供します。Flutter では、最も単純なテキストから最も複雑なレイアウトに至るまで、すべての UI がウィジェット ツリーで記述できます。WidgetsBinding は、ユーザー入力イベント、レイアウト、描画の処理を担当します。また、ネイティブ コードの呼び出しや通知の処理など、システムと対話するためのプラットフォーム チャネルも処理します。WidgetsBinding は、addPostFrameCallback、deferredUnmount、getRendererBinding など、一般的に使用されるメソッドをいくつか提供します。
2. ページの前景と背景の終了ステータスを監視する
WidgetsBinding はページの前景と背景の終了ステータスを監視します。ウィジェットに追加する必要があります。
とWidgetsBindingObserver
initState にオブザーバーを追加する
WidgetsBinding.instance?.addObserver(this);
破棄でオブザーバーを削除する
WidgetsBinding.instance?.removeObserver(this);
次に、応答メソッド DidChangeAppLifecycleState を通じてページのフォアグラウンドとバックグラウンドの終了ステータスを監視します。
// WidgetBinding
///生命周期变化时回调
// resumed:应用可见并可响应用户操作
// inactive:用户可见,但不可响应用户操作
// paused:已经暂停了,用户不可见、不可操作
// suspending:应用被挂起,此状态IOS永远不会回调
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
switch (state) {
case AppLifecycleState.inactive:
{
// 处于这种状态的应用程序应该假设它们可能在任何时候暂停。
break;
}
case AppLifecycleState.resumed:
{
// 应用程序可见,前台
if (_isAppBackground == true) {
setState(() {
});
_isAppBackground = false;
}
break;
}
case AppLifecycleState.paused:
{
// 应用程序不可见,后台
_isAppBackground = true;
break;
}
case AppLifecycleState.detached:
{
// 页面退出
break;
}
}
}
///当前系统改变了一些访问性活动的回调
void didChangeAccessibilityFeatures() {
super.didChangeAccessibilityFeatures();
}
/// Called when the system is running low on memory.
///低内存回调
void didHaveMemoryPressure() {
super.didHaveMemoryPressure();
}
/// Called when the application's dimensions change. For example,
/// when a phone is rotated.
///应用尺寸改变时回调,例如旋转
void didChangeMetrics() {
super.didChangeMetrics();
}
/// {@macro on_platform_brightness_change}
void didChangePlatformBrightness() {
super.didChangePlatformBrightness();
}
///文字系数变化
void didChangeTextScaleFactor() {
super.didChangeTextScaleFactor();
}
3. まとめ
Flutter 開発の実践 - WidgetsBinding は、ページの前景と背景の終了ステータスを監視します。
https://blog.csdn.net/gloryFlow/article/details/132253284
学習記録、日々進歩しています。