BB 10应用程序将终止,如果它处于脱机状态

时间:2013-09-21 12:29:32

标签: qml blackberry-10 blackberry-cascades

在我的应用程序中,当BB 10设备处于离线状态时......我需要显示一个带有“确定”按钮的对话框。按下“确定”按钮应该终止APP !!!

 SystemDialog *dialog;
dialog = new SystemDialog(tr("OK"), 0);
dialog->setTitle(tr("Alert")); 
dialog->setBody(message); 
dialog->setDismissAutomatically(true);.
connect(dialog, SIGNAL(finished(bb::system::SystemUiResult::Type)), dialog,
        SLOT(deleteLater()));
dialog->show();

这里的deleteLater()是SystemSlot,它只是终止了Alert对话框而不是App!如何通过C ++代码在BB 10 Cascades中执行此操作?是否可以像这样覆盖deleteLater()SystemSlot,

// I replaced deleteLater() with SLOT(deleteLaters()) in above code and Added this Slot
 void deleteLaters(){
  bb::Application::exit(0);
  }

然后它是Saying,没有这样的插槽deleteLaters()在bb :: System !!!

中找到

请帮助,

Thankks !!!

1 个答案:

答案 0 :(得分:0)

我想您只是想将SystemDialog finished信号连接到同一个对象的deleteLaters广告位(不存在)。

尝试类似下一个代码的内容,如果您在班级中声明了您的广告位,则myObject可能只是this

int connectResult = connect(dialog, 
                            SIGNAL(finished(bb::system::SystemUiResult::Type)),
                            myObject, 
                            SLOT(deleteLaters()));
Q_ASSERT(connectResult);
Q_RESULT(connectResult);

有关如何在班级中正确声明新广告位的详细信息,请参阅signals and slots文档。

注意:如果您确实需要关闭应用程序(不推荐),我相信您应该使用Application::instance->requestExit()来正确执行此操作。如果您在关闭应用程序之前不需要执行任何其他操作,则可以直接将信号连接到requestExit()插槽:

int connectResult = connect(dialog, 
                            SIGNAL(finished(bb::system::SystemUiResult::Type)),
                            Application::instance, 
                            SLOT(requestExit()));
Q_ASSERT(connectResult);
Q_RESULT(connectResult);