Android. Процесс, запущенный в отдельном потоке, завершается через время если приложение свернуть |
Здравствуйте, гость ( Вход | Регистрация )
Android. Процесс, запущенный в отдельном потоке, завершается через время если приложение свернуть |
MishaUA |
30.3.2018, 0:48
Сообщение
#1
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Доброго времени суток!
Делаю простенькое приложение под андроид, вот часть кода:
Т.е., запускается отдельный потом и главное окно (да, нужен QML, но это просто для тестов). Если приложение свернуть, то MainWindow, как бы, замирает(вроде так и должно быть), а MainThread нормально выполняется (принимает данные по сети и отправляет), но через какое-то время (несколько минут) он перестает отвечать. Получается, процесс был завершен, ну или вообще прога завершилась. Как можно сделать так, чтобы приложение/процесс не завершались? Спасибо! |
|
|
Алексей1153 |
30.3.2018, 7:33
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
MishaUA, очевидно, что нужно не доходить до строки
return a.exec(); , а ждать, пока поток thr не разрешит это сделать а окно можно скрыть w.hide(); |
|
|
MishaUA |
30.3.2018, 10:12
Сообщение
#3
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
эм, то есть, нужно выполнить a.exec(), после этого ждать пока не завершиться поток и только потом выполнять return?
к стати, а как тогда отреагировать на разворачивание приложения? |
|
|
MishaUA |
30.3.2018, 11:17
Сообщение
#4
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Нашел у QApplication опцию setQuitOnLastWindowClosed, которой можно отключить выход с приложения по закрытию главного окна.
блин, не помогло, приложение все равно закрывается через время((( |
|
|
MishaUA |
30.3.2018, 12:03
Сообщение
#5
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Поправочка - если сделать:
То не закрывается, правда, вторая строка сильно проц грузит, но скорей всего, это можно будет легко исправить. Осталось придумать, как как приложение может понять, что его "развернули", чтобы заново отрисовать GUI. PS: всё таки, через время тоже вылетает(((. Сообщение отредактировал MishaUA - 30.3.2018, 16:55 |
|
|
MishaUA |
31.3.2018, 0:13
Сообщение
#6
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
В общем, там надо запускать отдельно сервис, который будет крутиться. Ну и отдельно приложение с GUI.
Вот, нашел некоторый пример: https://github.com/bog-dan-ro/qt_services/ , там можно понять что к чему. |
|
|
Текстовая версия | Сейчас: 4.12.2024, 22:51 |