didPush method
When boot first page, previousRoute
is null.
启动第一个页面时,previousRoute
为null。
Implementation
@override
void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
super.didPush(route, previousRoute);
// print('LifecycleObserver($hashCode)#didPush('
// 'route(${route.hashCode}): ${route.settings.name}, '
// 'previousRoute(${previousRoute?.hashCode}): ${previousRoute?.settings.name})');
if (previousRoute != null) {
try {
RouteEntry previousEntry = _getRouteEntry(previousRoute);
if (route is PageRoute) {
// previousRoute trigger invisible
//
// previousRoute触发invisible
_sendEventsToGivenRoute(
previousEntry, lifecycleEventsInactiveAndInvisible);
if (previousRoute is PopupRoute) {
// Previous PageRoute trigger invisible
//
// 前一个PageRoute触发invisible
_sendEventsToLastPageRoute([LifecycleEvent.invisible]);
}
} else if (route is PopupRoute) {
// Previous route trigger inactive
//
// previousRoute触发inactive
_sendEventsToGivenRoute(previousEntry, [LifecycleEvent.inactive]);
}
} catch (e) {
// print(e);
}
}
// 新push进来的route添加进history
_history.add(RouteEntry(route));
}