在Flutter中,HomeController
类继承自BaseController
,并重写了一些生命周期方法。这些方法在应用程序的不同状态下被调用。以下是这些生命周期方法的详细介绍:
-
onInit() :
- 这个方法在控制器初始化时调用。通常用于初始化一些变量或状态。
- 在这个例子中,
super.onInit()
被调用,确保父类的初始化逻辑也被执行。
-
onReady() :
- 这个方法在控制器的所有初始化工作完成后调用,通常用于执行一些需要在界面完全渲染后进行的操作。
- 在这个例子中,
onReady
方法中使用了WidgetsBinding.instance.addPostFrameCallback
来订阅路由观察者,并调用了ForYouUtil.preLoad()
进行预加载操作。
-
onClose() :
- 这个方法在控制器被销毁时调用,通常用于清理资源或取消订阅。
- 在这个例子中,
onClose
方法中移除了路由观察者的订阅,并调用了super.onClose()
来确保父类的清理逻辑也被执行。
-
didPopNext() :
- 当当前页面再次显示时调用,通常用于处理页面重新显示时的逻辑。
- 在这个例子中,
didPopNext
方法中打印了一条调试信息。
-
didPush() :
- 当当前页面被推送到导航堆栈时调用,通常用于处理页面被推送时的逻辑。
- 在这个例子中,
didPush
方法中打印了一条调试信息。
-
didPop() :
- 当当前页面从导航堆栈中弹出时调用,通常用于处理页面被弹出时的逻辑。
- 在这个例子中,
didPop
方法中打印了一条调试信息。
-
didPushNext() :
- 当一个新页面被推送到当前页面之上时调用,通常用于处理新页面被推送时的逻辑。
- 在这个例子中,
didPushNext
方法中打印了一条调试信息。
-
onResumed() :
- 当应用程序从后台恢复到前台时调用,通常用于处理应用程序恢复时的逻辑。
- 在这个例子中,
onResumed
方法中打印了一条调试信息。
-
onPaused() :
- 当应用程序从前台进入后台时调用,通常用于处理应用程序暂停时的逻辑。
- 在这个例子中,
onPaused
方法中打印了一条调试信息。
-
onInactive() :
- 当应用程序处于非活动状态时调用,通常用于处理应用程序变为非活动状态时的逻辑。
- 在这个例子中,
onInactive
方法中打印了一条调试信息。
在Flutter中,HomeController
类中的生命周期方法与iOS中的UIViewController
生命周期方法有一些对应关系。以下是一些主要的对应关系:
-
viewWillAppear:
- 对应于Flutter中的
didPush
和didPopNext
方法。 didPush
在页面被推送到导航堆栈时调用,类似于viewWillAppear
。didPopNext
在当前页面再次显示时调用,也类似于viewWillAppear
。
- 对应于Flutter中的
-
viewDidAppear:
- 对应于Flutter中的
onReady
方法。 onReady
在页面完全渲染后调用,类似于viewDidAppear
。
- 对应于Flutter中的
-
viewWillDisappear:
- 对应于Flutter中的
didPop
和didPushNext
方法。 didPop
在页面从导航堆栈中弹出时调用,类似于viewWillDisappear
。didPushNext
在新页面被推送到当前页面之上时调用,也类似于viewWillDisappear
。
- 对应于Flutter中的
-
viewDidDisappear:
- 对应于Flutter中的
onClose
方法。 onClose
在控制器被销毁时调用,类似于viewDidDisappear
。
- 对应于Flutter中的
-
viewDidLoad:
- 对应于Flutter中的
onInit
方法。 onInit
在控制器初始化时调用,类似于viewDidLoad
。
- 对应于Flutter中的
-
applicationDidBecomeActive:
- 对应于Flutter中的
onResumed
方法。 onResumed
在应用程序从后台恢复到前台时调用,类似于applicationDidBecomeActive
。
- 对应于Flutter中的
-
applicationWillResignActive:
- 对应于Flutter中的
onPaused
方法。 onPaused
在应用程序从前台进入后台时调用,类似于applicationWillResignActive
。
- 对应于Flutter中的
-
applicationDidEnterBackground:
- 对应于Flutter中的
onInactive
方法。 onInactive
在应用程序变为非活动状态时调用,类似于applicationDidEnterBackground
。
- 对应于Flutter中的