Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Android. Процесс, запущенный в отдельном потоке, завершается через время если приложение свернуть
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
MishaUA
Доброго времени суток!
Делаю простенькое приложение под андроид, вот часть кода:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainThread  thr;

    MainWindow w;
    w.show();

    return a.exec();
}

Т.е., запускается отдельный потом и главное окно (да, нужен QML, но это просто для тестов). Если приложение свернуть, то MainWindow, как бы, замирает(вроде так и должно быть), а MainThread нормально выполняется (принимает данные по сети и отправляет), но через какое-то время (несколько минут) он перестает отвечать. Получается, процесс был завершен, ну или вообще прога завершилась.
Как можно сделать так, чтобы приложение/процесс не завершались?
Спасибо!
Алексей1153
MishaUA, очевидно, что нужно не доходить до строки
return a.exec();
, а ждать, пока поток thr не разрешит это сделать

а окно можно скрыть
w.hide();
MishaUA
эм, то есть, нужно выполнить a.exec(), после этого ждать пока не завершиться поток и только потом выполнять return?

к стати, а как тогда отреагировать на разворачивание приложения?
MishaUA
Нашел у QApplication опцию setQuitOnLastWindowClosed, которой можно отключить выход с приложения по закрытию главного окна.


блин, не помогло, приложение все равно закрывается через время(((
MishaUA
Поправочка - если сделать:
   int ex = a.exec();
    while(thr.isRunning());
    return ex;

То не закрывается, правда, вторая строка сильно проц грузит, но скорей всего, это можно будет легко исправить.
Осталось придумать, как как приложение может понять, что его "развернули", чтобы заново отрисовать GUI.
PS: всё таки, через время тоже вылетает(((.
MishaUA
В общем, там надо запускать отдельно сервис, который будет крутиться. Ну и отдельно приложение с GUI.
Вот, нашел некоторый пример: https://github.com/bog-dan-ro/qt_services/ , там можно понять что к чему.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.