我正在尝试在Ovi商店上发布我的第一个N9应用程序,但我的质量保证未通过:
摘要:在后台挂起应用程序后,应用程序无法通过单击应用程序图标返回到前端。 重现步骤: 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);
}
但是在复制bug时,我根本没有得到eventFilter。当我按下图标时,我该怎么做才能回到我的应用程序?
答案 0 :(得分:1)
执行此操作的正确方法是使用applauncherd
通过调用invoker
启动您的应用。您还可以使用其助推器功能来改善应用的启动时间(使用MDeclarativeCache
)。
答案 1 :(得分: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并恢复应用程序。