2

我正在尝试在 Ovi Store 上发布我的第一个 N9 应用程序,但我没有通过 QA:

摘要:在后台暂停应用程序后,应用程序无法通过单击应用程序图标回到前面。复制步骤: 1. 下载并安装内容。2. 启动应用程序。3. 在后台暂停应用程序。4. 单击应用程序图标。实际结果:单击应用程序图标时没有响应。预期结果:应用程序回到前面。内容文件中的功能和控件必须按指定运行。

我的应用程序是用 Qt 用 C++ 编写的,有一个 QWidget。在我调用的主函数中

Widget w;
w.showFullScreen();

我也覆盖了 eventFilter

bool Widget::eventFilter(QObject *object, QEvent *event)
{
    if (event->type() == QEvent::ActivationChange && m_created) {
        if (isActiveWindow()) {
            resume();
        }
        else {
            pause();
        }
    }

    return QWidget::eventFilter(object, event);
}

但是在重现错误时,我根本没有到达 eventFilter。当我按下图标时,我应该怎么做才能回到我的应用程序?

4

2 回答 2

1

正确的方法是applauncherd通过调用来启动您的应用程序invoker。您还可以使用它的助推器功能来改善您的应用程序的启动时间(通过使用MDeclarativeCache)。

以下是有关如何使用调用程序的文档:
http ://harmattan-dev.nokia.com/docs/platform-api-reference/showdoc.php?pkn=applauncherd-user-documentation&wb=daily-docs&url=Li94bWwvZGFpbHktZG9jcy9hcHBsYXVuY2hlcmQtdXNlci1kb2N1bWVudGF0aW9u

这里是如何使用MDeclarativeCache
http ://harmattan-dev.nokia.com/docs/platform-api-reference/showdoc.php?pkn=applauncherd-mdeclarativecache-documentation&wb=daily-docs&url=Li94bWwvZGFpbHktZG9jcy9hcHBsYXVuY2hlcmQtbWRlY2xhcmF0aXZlY2FjaGUtZG9jdW1%lbDR

于 2013-02-02T16:23:30.937 回答
0

经过一些实验,我找到了解决方案。这有点奇怪,但它有效:

bool Widget::eventFilter(QObject *object, QEvent *event)
{
    if (event->type() == QEvent::ActivationChange)
    {
        if (isActiveWindow())
        {
            resume();
        }
        else
        {
            pause();
        }
    }
    else if (event->type() == QEvent::SockAct) // pure magic
    {
        activateWindow();
        resume();
    }

    return QWidget::eventFilter(object, event);
}

按下主屏幕上的图标后,filetr QEvent::SockAct 并恢复应用程序。

于 2012-02-15T17:12:37.283 回答