检测bb10应用程序转到后台

时间:2013-12-12 16:32:58

标签: c++ qml blackberry-10

首先,这是我使用bb10 sdk和qml + c ++的第一次开发,我有 我试图捕捉用户从黑莓徽标中滑出的时刻,以最小化或切换应用程序。根据其官方文件http://developer.blackberry.com/native/documentation/core/com.qnx.doc.native_sdk.devguide/com.qnx.doc.native_sdk.devguide/topic/c_appfund_applifecycle.html

调用invisible()方法时会出现状态窗口NAVIGATOR_WINDOW_INACTIVE,

这里的事情是:我在互联网上做的文档和搜索没有解释任何关于覆盖侦听此事件的方法。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您需要创建QObject的子类。如果您使用项目创建向导,Momentics将以applicationui.hpp和applicationui.cpp为您执行此操作。在此类中,在application.hpp中声明以下插槽:

public slots:
  void asleep();
  void awake();
  void invisible();
  void thumbnail();
  void fullscreen();

然后在类创建功能中将应用程序信号附加到您的插槽:

bool c = QObject::connect(Application::instance(), SIGNAL(asleep()),
        this, SLOT(asleep()));
Q_ASSERT(c);

c = QObject::connect(Application::instance(), SIGNAL(awake()),
        this, SLOT(awake()));
Q_ASSERT(c);

c = QObject::connect(Application::instance(),
        SIGNAL(invisible()), this, SLOT(invisible()));
Q_ASSERT(c);

c = QObject::connect(Application::instance(),
        SIGNAL(thumbnail()), this, SLOT(thumbnail()));
Q_ASSERT(c);

c = QObject::connect(Application::instance(),
        SIGNAL(fullscreen()), this, SLOT(fullscreen()));
Q_ASSERT(c);

Q_UNUSED(c);

然后定义插槽函数,以便在应用程序状态变为与信号对应的状态时执行您需要执行的操作(我此处仅包含一个):

void applicationui::asleep() {
    //configure application for sleep mode. Suspend or reduce processing, etc.
}