Sorunu yeniden üreten basit bir program oluşturdum. Telefonumu kilitlediğimde veya Android telefonumda başka bir uygulamaya geçtiğimde, çalışan iş parçacığı yazdırmaya devam eder, ancak olay döngüsü durur. Uygulamama geri döndüğümde, olay döngüsü devam ediyor.QGuiApplication, Qt 5.3 veya Qt 5.4 ile derlendiğinde (ancak Qt 5.2 ile değil) telefon kilitlendiğinde olay döngüsünü durdurur
QGuiApplication yerine QCoreApplication ile değiştirirseniz, sorun kaybolur. Qt 5.3 yerine Qt 5.2 ile derlerse sorun ortadan kalkar. Qt 5.4, Qt 5.3 ile aynı sorunu yaşıyor.
static int count = 0;
void workerThread()
{
while (1) {
qDebug("Worker thread %d", count++);
sleep(1);
}
}
void MyObject::step()
{
qDebug("Event loop %d", count++);
}
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
MyObject w;
QTimer timer;
QObject::connect(&timer, SIGNAL(timeout()), &w, SLOT(step()));
timer.start(1000);
QtConcurrent::run(workerThread);
return a.exec();
}
Uygulama odağı kaybettiğinde QGuiApplication uygulamasının olay döngüsünü durdurmasını nasıl engellerim? Ön planda değilken bile etkinlikleri işlemek için uygulamanıza ihtiyacım var.
Eğer – lpapp
sashoalm, sana bir hata raporu yarattı? logCat çıktısını gösterir, ancak Can Lütfen işletim sistemi ve telefon geliştiricileri için daha fazla bilgi verin: https://bugreports.qt-project.org/browse/QTBUG-43434 – lpapp
Muhtemelen uygulama durumunu (değiştirilen sinyal vb.) de doğrularım. – lpapp