crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Android. Процесс, запущенный в отдельном потоке, завершается через время если приложение свернуть
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
MishaUA Дата 31.3.2018, 0:13
  В общем, там надо запускать отдельно сервис, который будет крутиться. Ну и отдельно приложение с GUI.
Вот, нашел некоторый пример: https://github.com/bog-dan-ro/qt_services/ , там можно понять что к чему.
MishaUA Дата 30.3.2018, 12:03
  Поправочка - если сделать:
   int ex = a.exec();
    while(thr.isRunning());
    return ex;

То не закрывается, правда, вторая строка сильно проц грузит, но скорей всего, это можно будет легко исправить.
Осталось придумать, как как приложение может понять, что его "развернули", чтобы заново отрисовать GUI.
PS: всё таки, через время тоже вылетает(((.
MishaUA Дата 30.3.2018, 11:17
  Нашел у QApplication опцию setQuitOnLastWindowClosed, которой можно отключить выход с приложения по закрытию главного окна.


блин, не помогло, приложение все равно закрывается через время(((
MishaUA Дата 30.3.2018, 10:12
  эм, то есть, нужно выполнить a.exec(), после этого ждать пока не завершиться поток и только потом выполнять return?

к стати, а как тогда отреагировать на разворачивание приложения?
Алексей1153 Дата 30.3.2018, 7:33
  MishaUA, очевидно, что нужно не доходить до строки
return a.exec();
, а ждать, пока поток thr не разрешит это сделать

а окно можно скрыть
w.hide();
MishaUA Дата 30.3.2018, 0:48
  Доброго времени суток!
Делаю простенькое приложение под андроид, вот часть кода:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainThread  thr;

    MainWindow w;
    w.show();

    return a.exec();
}

Т.е., запускается отдельный потом и главное окно (да, нужен QML, но это просто для тестов). Если приложение свернуть, то MainWindow, как бы, замирает(вроде так и должно быть), а MainThread нормально выполняется (принимает данные по сети и отправляет), но через какое-то время (несколько минут) он перестает отвечать. Получается, процесс был завершен, ну или вообще прога завершилась.
Как можно сделать так, чтобы приложение/процесс не завершались?
Спасибо!
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.7.2025, 18:15