如何更有效地使用 RunApp 功能来更改页面

Posted

技术标签:

【中文标题】如何更有效地使用 RunApp 功能来更改页面【英文标题】:How to use RunApp function more efficiently for changing Pages 【发布时间】:2019-09-28 22:02:44 【问题描述】:

我正在创建一个登陆屏幕加载五秒钟的 android 应用程序。我正在使用 RunApp 函数调用登陆页面,登陆页面将在五秒后调用主页应用程序。这是完成此类工作的有效方式吗?

我尝试使用导航功能,但是当我按下返回按钮时,它返回到登录页面。

这个是用来叫我登陆的家

import './pages/landing.dart';


void main() 

    runApp(LandingHome(),
    ); 



在 Landing.dart 上

import 'package:neptools/pages/homepage.dart';


class LandingHome extends StatefulWidget
 @override
_LandingHomeState createState() => _LandingHomeState();


class _LandingHomeState extends State<LandingHome>
  @override
  void initState()
    super.initState();
    Timer(Duration(seconds:5),() => runApp(HomePage()), );
  

Rest 是 Landing Home 的 UI 元素

@override
  Widget build(BuildContext context) 
    return  MaterialApp(
      home: Scaffold(
//Other UI Elements

一切正常。我想知道这种方法的效率如何。我认为这会消耗更多内存,因为应用程序登陆Home 可能会在后台运行

【问题讨论】:

【参考方案1】:

我认为最好创建命名路由,而不是再次调用你的根函数。

5 秒延迟后,您可以推送到特定的命名路线。

这使您的根函数只执行一次并且不易出错

Named Routes Documentation

您可以使用包让您的生活更轻松创建命名路线 Compassion

还有你为什么要这么做?您的应用程序还有一个启动画面,它会一直显示,直到所需的资源加载到内存中,它的速度取决于硬件。在低端设备中,假设启动应用程序后用户等待 3 秒 + 5 秒 = 8 秒。我不认为这是个好主意。你应该尽量避免它。

【讨论】:

以上是关于如何更有效地使用 RunApp 功能来更改页面的主要内容,如果未能解决你的问题,请参考以下文章

如何更有效地使用def函数来询问用户的名字

如何使用 Urllib2 更有效地抓取?

使用不同的列集更有效地更新大量行?

如何有效地查看 TabNavigator 页面

如何使用故事板、initWithCoder、viewDidLoad 和 viewDidLayoutSubviews 有效地管理屏幕尺寸更改和重绘?

如何使用缩放有效地将 16 位无符号短转换为 8 位无符号字符?