如何判断应用程序是否将从 QML 中暂停

lab*_*sin 5 ubuntu-touch

我正在为 Ubuntu Touch 开发一个游戏,当用户从应用程序转到另一个应用程序时,该游戏需要进入“暂停”状态。我怎么得到这个。

我试图查看 MainView 的可见性是否发生变化,但没有发生变化。在说明书和 API 中都找不到它。

lab*_*sin 4

qt 导入的命名空间中有一个应用程序属性,其状态可以绑定到:

Connections {
    target: Qt.application
    onStateChanged:
        if(Qt.application.state !== Qt.ApplicationActive) {
            // Pauze the game here
        }
}
Run Code Online (Sandbox Code Playgroud)

这里的文档说明如下:

应用程序状态

Qt.ApplicationActive - 该应用程序是最顶层和最集中的应用程序,用户能够与该应用程序交互。

但这也会在从顶部或左侧滑动时出现。

在桌面上,当您重新调整窗口大小时也会出现此问题,我认为这是一个错误。


还有:

Qt.ApplicationSuspished - 应用程序已挂起并且对用户不可见。在移动平台上,当用户返回主屏幕或切换到另一个应用程序时,应用程序通常会进入此状态。在此状态下,应用程序应确保用户认为它始终处于活动状态并且不会丢失进度,从而保存任何持久数据。应用程序应停止所有活动并准备停止代码执行。挂起时,应用程序可以随时被终止,而不会发出进一步警告(例如,当内存不足时,操作系统会强制清除挂起的应用程序)。

但这似乎不起作用。我已经报告了错误报告。如果它也影响到您,请标记。