Qml BB 10应用程序将在离线时终止

Qml BB 10应用程序将在离线时终止,qml,blackberry-10,blackberry-cascades,Qml,Blackberry 10,Blackberry Cascades,在我的应用程序中,当BB 10设备处于脱机状态时。。。我需要显示一个对话框与“确定”按钮。按下“确定”按钮应终止应用程序 SystemDialog *dialog; dialog = new SystemDialog(tr("OK"), 0); dialog->setTitle(tr("Alert")); dialog->setBody(message); dialog->setDismissAutomatically(true);. connect(dialog, SI

在我的应用程序中,当BB 10设备处于脱机状态时。。。我需要显示一个对话框与“确定”按钮。按下“确定”按钮应终止应用程序

 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,它只终止警报对话框,而不终止应用程序!!!如何通过C++代码在BB 10级联中实现这一点?是否可以像这样覆盖deleteLater()系统插槽

// I replaced deleteLater() with SLOT(deleteLaters()) in above code and Added this Slot
 void deleteLaters(){
  bb::Application::exit(0);
  }
然后它说,在bb::System中找不到这样的插槽deleteLaters()

请帮忙


谢谢

我猜您只是想将
SystemDialog
finished
信号连接到同一对象的
deleteLaters
插槽(该插槽不存在)

尝试下一个代码,其中
myObject
可能就是
this
,如果您在类中声明了槽位

int connectResult = connect(dialog, 
                            SIGNAL(finished(bb::system::SystemUiResult::Type)),
                            myObject, 
                            SLOT(deleteLaters()));
Q_ASSERT(connectResult);
Q_RESULT(connectResult);
有关如何在类中正确声明新插槽的更多信息,请参阅文档

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

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

我同意你的帖子,谢谢,但如何知道BB10设备是否离线?我试过这个,但即使我在线,我也会在控制台上离线。我正在模拟器中测试这个。在真正的BB 10设备上也有同样的工作吗