在这篇文章中,我们来介绍如何判断一个QML应用被推到后台或前台。我们知道,在Ubuntu手机平台中,它是一个单应用的操作系统。当一个应用被推到后台后,应用就被挂起,不能运行。我们有时需要这个标志来判断我们的应用什么时候是在前台,什么时候是在后台。
我们用Ubuntu SDK创建一个简单的QML应用:
import QtQuick 2.0 import Ubuntu.Components 1.1 /*! \brief MainView with a Label and Button elements. */ MainView { id: main // objectName for functional testing purposes (autopilot-qt5) objectName: "mainView" // Note! applicationName needs to match the "name" field of the click manifest applicationName: "com.ubuntu.developer.liu-xiao-guo.foregrounddetect" /* This property enables the application to change orientation when the device is rotated. The default is false. */ //automaticOrientation: true // Removes the old toolbar and enables new features of the new header. useDeprecatedToolbar: false width: units.gu(100) height: units.gu(75) Page { title: i18n.tr("ForegroundDetect") Connections { target: Qt.application onActiveChanged: { console.log("Qt.application.active: " + Qt.application.active); } } } }
在这里,我们使用Qt.application这个变量的"active"属性来判断一个应用是否被推到后台或前台。我们运行应用结果如下:
当我们在手机上把应用推到后台时,就会显示false;当我们把应用推到前台时,就会显示true。
整个应用的源码在:bzr branch lp:~liu-xiao-guo/debiantrial/foregrounddetect
时间: 2024-10-11 23:26:43