如何控制QML表格的生命周期(我的意思是窗口)?我在谈论Android上的onCreate,onResume,onPause等方法或iOS上的生命周期视图。我可以在Android,iOS,Windows 10 Mobile,桌面等上处理QML表单的生命周期吗?
答案 0 :(得分:1)
Qt Quick(QML)应用程序的设计与Android不同。视图与Button
,Text
等对象之间没有区别。每个带图形表示的QML对象都继承Item
,可以定义Component.onCompleted
和{{1 }} 功能。一旦创建和销毁对象,它们将被执行。如果您还需要暂停信号,我建议您在创建的每个视图中创建函数Component.onDestruction
和pause()
,并创建一个管理视图的对象 - 创建,销毁,暂停和恢复他们。
请注意,您需要自己处理视图和状态之间的转换。此外,您可以创建自己的QML对象,因此值得考虑创建视图模板,然后只继承它。
这适用于您部署应用程序的每个系统。
如果您有更多问题,需要举例等。请考虑编辑问题或发表评论。
我想再次感谢BaCaRoZzo提供有用的提示。我把它们添加到这个答案中。
我创建了一个试图模仿Android应用生命周期的示例项目。这适用于每个操作系统。这只是一个例子,但我认为类似的方法可能会在发布源中使用。但是,首先您需要了解QML的本质。这是一种已经由其他进程管理的高级语言。它与Java有很大不同。例如,查看docs关于后台进程使用的状态的片段:
Qt Quick应用程序通常不应该在QML处理此状态 水平。相反,您应该卸载整个UI并重新加载QML 应用程序再次变为活动状态时的文件。
所以,如果我是你,我只会在检测到应用程序进入后台时保存敏感数据。没有必要尝试和取消观点等。这将是不必要的艰难奋斗,因为QML不是为此而设计的。相反,如果操作系统需要更多内存,请将您的应用程序杀死。
您可以找到示例项目here。如果需要,您可以使用它。它包含注释,以便您更好地了解正在发生的事情。