connect(qApp, &QGuiApplication::aboutToQuit, [&]{
// 退出事件循环前 保存数据
});
connect(qApp, &QGuiApplication::commitDataRequest, [&](QSessionManager &manager){
// 关机、重启、注销前 保存数据
// 例如Win系统,有时关机缓慢,用户会点击“强制关机”,系统会直接kill剩余进程
// 所以在得知系统即将关机的时候,便应立即保存数据,以免被kill而错失时机
});
connect(qApp, &QGuiApplication::applicationStateChanged, [&](Qt::ApplicationState state){
if (Qt::ApplicationSuspended == state){
// 程序被挂起前 保存数据;例如安卓系统,当用户切换至其他APP时,原APP会“暂停运行”
}
});