如何检查我的小部件屏幕何时能像Android中的onResume一样在可见性中波动
问题内容:
在android中,如果有活动可见,onResume
则称为。什么是相当于方法onResume
的 颤振 ?
我需要知道小部件屏幕何时可见,以便可以基于此自动播放视频。我可能会转到另一个窗口小部件屏幕,当我回来时它将自动播放。
我的方法是播放视频,didUpdateWidget
但didUpdateWidget
即使窗口小部件屏幕不可见,也会被调用。
注意:
我不是在询问didChangeAppLifecycleState
来自,WidgetsBindingObserver
因为它为onResume
应用程序生命周期提供了etc回调,而不是特定的小部件屏幕。
问题答案:
所有的问题都解决了。
将观察者从小部件树(materialappwidget)的根放置在导航器上。
如果您需要更多说明,请访问此链接:https : //api.flutter.dev/flutter/widgets/RouteObserver-
class.html
我已经在我的项目中实现了它,并且工作得很好@ Sp4Rx
// Register the RouteObserver as a navigation observer.
final RouteObserver<PageRoute> routeObserver =
RouteObserver<PageRoute>();
void main() {
runApp(MaterialApp(
home: Container(),
navigatorObservers: [routeObserver],
));
}
class RouteAwareWidget extends StatefulWidget {
State<RouteAwareWidget> createState() => RouteAwareWidgetState();
}
// Implement RouteAware in a widget's state and subscribe it to
the
RouteObserver.
class RouteAwareWidgetState extends State<RouteAwareWidget> with
RouteAware {
@override
void didChangeDependencies() {
super.didChangeDependencies();
routeObserver.subscribe(this, ModalRoute.of(context));
}
@override
void dispose() {
routeObserver.unsubscribe(this);
super.dispose();
}
@override
void didPush() {
// Route was pushed onto navigator and is now topmost route.
}
@override
void didPopNext() {
// Covering route was popped off the navigator.
}
@override
Widget build(BuildContext context) => Container();
}