Android的onStart等效

Android的onStart等效,第1张

概述我正在构建一个具有本地数据库的应用程序,我在该数据库中保留了一些关于电影的信息.有一个名为“收藏夹”的屏幕,我从本地数据库中获取电影并将它们放在列表视图中: 如果我点击该列表中的任何电影,我将被引导到一个新的屏幕,我可以看到电影的详细信息.在此屏幕中,有一个按钮可从本地数据库中删除电影. 现在我的问题从这里开始:在我从数据库中删除任何电影并返回“收藏夹”屏幕后,我仍然在ListView中看到该电影 我正在构建一个具有本地数据库的应用程序,我在该数据库中保留了一些关于电影的信息.有一个名为“收藏夹”的屏幕,我从本地数据库中获取电影并将它们放在列表视图中:

如果我点击该列表中的任何电影,我将被引导到一个新的屏幕,我可以看到电影的详细信息.在此屏幕中,有一个按钮可从本地数据库中删除电影.

现在我的问题从这里开始:在我从数据库中删除任何电影并返回“收藏夹”屏幕后,我仍然在ListVIEw中看到该电影.但我已经从数据库中删除了该电影.如果我在AndroID平台上做这个,我会覆盖onStart方法并对数据库进行查询,然后更新ListvIEw.但是只要我知道,Flutter就没有像onStart那样的方法.所以我该怎么做?

class FavoritesScreen extends StatefulWidget {  @overrIDe  _FavoritesScreenState createState() => _FavoritesScreenState();}class _FavoritesScreenState extends State<FavoritesScreen> {  var favoriteMovIEDatabase = FavoriteMovIEDatabase();  List<MovIEOvervIEw> movIEOvervIEwList = List<MovIEOvervIEw>();  @overrIDe  voID initState() {    super.initState();    favoriteMovIEDatabase        .getAllFavoriteMovIEs()        .then((List<MovIEOvervIEw> List) {      setState(() {        movIEOvervIEwList = List;      });    });  }  @overrIDe  Widget build(BuildContext context) {    return Scaffold(        appbar: Appbar(Title: Text("Favorites")),body: MovIEOvervIEwListVIEw(movIEOvervIEwList,"FAVORITE")    );  }}

编辑:

我曾尝试使用WidgetsBindingObserver,但它没有帮助.

@overrIDe  voID dIDChangeApplifecycleState(ApplifecycleState state) {    super.dIDChangeApplifecycleState(state);    if(state == ApplifecycleState.resumed){      favoriteMovIEDatabase          .getAllFavoriteMovIEs()          .then((List<MovIEOvervIEw> List) {        setState(() {          movIEOvervIEwList = List;        });      });    }  }

它甚至没有称这种方法.

解决方法 假设当您使用Navigator推送新路由时发生问题,那么您可以使用 RouteAware mixin与 RouteObserver结合使用,然后覆盖dIDPopNext方法.

每当路线再次可见时,都会调用dIDPopNext.

final RouteObserver<PageRoute> routeObserver = new RouteObserver<PageRoute>();voID main() {  runApp(new MaterialApp(    home: new Container(),navigatorObservers: [routeObserver],));}class RouteAwareWidget extends StatefulWidget {  State<RouteAwareWidget> createState() => new 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 dIDPopNext() {    // Todo: query DB again  }  @overrIDe  Widget build(BuildContext context) => new Container();}
总结

以上是内存溢出为你收集整理的Android的onStart等效全部内容,希望文章能够帮你解决Android的onStart等效所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存