Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
#1

Запущенный service не работает, когда нет процесса - Программирование Android

18.05.2016, 23:57. Просмотров 148. Ответов 14
Метки нет (Все метки)

Запускаю сервис в startForeground() он работает, в работающих приложениях у меня показано активны 1н процесс и 1н сервис (мой).
Но когда "клинером" чищу оперативку он убивает процесс (процессов 0 сервис 1).
И сервис перестает выполнять задачу (раз в 5 сек показывать сообщение).

Это нормально? Что можно с этим сделать, типа оживить процесс или как то отделить сервис от процесса чтобы он дальше выполнялся?
Прошу помочь или объяснить что происходит.
http://www.cyberforum.ru/android-dev/thread2154023.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2016, 23:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Запущенный service не работает, когда нет процесса (Программирование Android):

Не выводится Диалог, когда нет интернет подключения
Всем привет приложения должно сработать если есть подключения к интернету а...

Загрузка картинок Picasso из дискового кэша, когда нет интернета
Подскажите как можно при помощи Picasso реализовать загрузку картинок в фон...

Программа работает при дебаггинге (F5) из студии, но собранный .exe, запущенный отдельно - нет
Проблема в заголовке. Моя программа делает автоматическое копирование...

Когда страница стартовая - все работает, а когда я захожу в нее по ссылке - нет..
Странно!!! Когда страница стартовая - все работает, а когда я захожу в нее по...

как завершить процесс запущенный от себя по имени процесса?
как завершить процесс запущенный от себя по имени процесса? что то искал везде...

14
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
19.05.2016, 18:20 #2
powowstal, при создании сервиса вызывается функция возвращаемое значение которой говорит системе о том что делать если сервис упал или был остановлен системой - одна из констант заставляет систему перезапускать сервис в таких случаях. Названия функции не помню может старт. Если вы сами через вызов остановите сервис система не будет его поднимать до тех пор пока кто-нибудь не сделает этого явно - например обратится к нему.
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
19.05.2016, 20:09 #3
return START_STICKY;
1
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
20.05.2016, 01:02  [ТС] #4
YuraAAA, да этот флаг работает но киткат думает иначе, на некоторых сборках сервис не возобновляется

Добавлено через 5 минут
vxg,
Цитата Сообщение от vxg Посмотреть сообщение
например обратится к нему
я так понимаю открыть приложение и явно запустить сервис? Но мне нужно не открывая приложения запустить сервис (например с входящим звонком запустить сервис и что бы он произвел действие)
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
20.05.2016, 06:33 #5
powowstal, создайте нужные ресиверы и в них создавайте сервис. Можете у невозобновления есть иная причина?
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
20.05.2016, 10:57  [ТС] #6
vxg,
Цитата Сообщение от vxg Посмотреть сообщение
создайте нужные ресиверы и в них создавайте сервис
может в сервисе ресивер или можно в ресиверах сервис?

Цитата Сообщение от vxg Посмотреть сообщение
Можете у невозобновления есть иная причина?
причина "клинер" эта падла грохает всех и вся кроме работающего ресивера пришлось ставить ресивер в без конечный цикл с паузой на сон не больше 5 сек, а то клинер его находит и убивает вместе с сервисами
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
20.05.2016, 11:03 #7
Цитата Сообщение от powowstal Посмотреть сообщение
может в сервисе ресивер или можно в ресиверах сервис?
ресивер это такая "пимпочка" которую вызывает система когда происходит соответствующее ресиверу событие например запуск телефона, включение экрана или телефонный звонок (не пробовал). вы можете объявить его в манифесте или добавить во время работы. если он в манифесте то когда наступит событие система разыщет ваш ресивер и стартует его даже если приложение не запущено. если добавлено во время работы то естественно будет работать пока работает приложение. ну а в ресивере вы можете запустить ваш сервис если это требует ваша задача
1
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
23.05.2016, 19:55  [ТС] #8
vxg, проблема в том что любой"клинер" (когда выполняет освобождение памяти) снимает регистрацию ресивера и он больше не работает, есть какие то мысли что бы избежать такого действия?
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
23.05.2016, 21:15 #9
Цитата Сообщение от powowstal Посмотреть сообщение
снимает регистрацию ресивера
если ресивер в манифесте его нельзя снять. воткните в манифест к примеру ресивер события загрузки и как бы клинер не лез из кожи вон но при перезапуске система поднимет сервис. конечно вам нужно что бы это произошло как можно быстрее. можно посоветовать "минировать" систему алармами которые поднимают сервис - если клинер шлепнул сервис то через 5 минут сработает аларм который его поднимет и установит следующий аларм. если аларм видет что сервис живой то просто ставит следующий аларм через 5 минут и так далее. кроче вариантов масса.
1
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
23.05.2016, 21:53  [ТС] #10
vxg, Ресивер на звонок прописан в манифесте и он снимается "клинером".
Да я так бы и сделал аларм если не нужна была 100% гарантия что приложение отреагирует на событие в не зависимости использовался ли "клинер".
Я уже нашел выход - создал 2 сервиса и ресивер, сервис1 запускает ресивер, ресивер сервис 2, а сервис 2 запускает сервис 1 и на ресивере слип на 2 секунды (если слип на сервисе он тихо уничтожается). Вышел такой себе цыкл круговой опеки.
Но я понимаю что это ерунда какая то вот думал может кто что подскажет.
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
24.05.2016, 06:40 #11
powowstal, ресивер на звонок можно вписать в манифест?
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
24.05.2016, 13:55  [ТС] #12
vxg, легко
Цитата Сообщение от YuraAAA Посмотреть сообщение
XML
1
2
3
4
5
<receiver android:name=".IncomingCall">  
                         <intent-filter>
                         <action android:name="android.intent.action.PHONE_STATE" />
                         </intent-filter>
                          </receiver>
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
24.05.2016, 13:59 #13
powowstal, теперь вам не страшен клинер
0
powowstal
30 / 30 / 5
Регистрация: 21.03.2013
Сообщений: 369
24.05.2016, 16:00  [ТС] #14
vxg, как раз на оборот, "клинер" спокойно снимает зарегистрированный ресивер и программа перестает реагировать на звонки...
0
vxg
Модератор
3230 / 2033 / 319
Регистрация: 13.01.2012
Сообщений: 7,885
24.05.2016, 16:09 #15
я в шоке... возможно ли это... YuraAAA, что вы думаете по этому поводу?
0
24.05.2016, 16:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2016, 16:09
Привет! Вот еще темы с решениями:

Process.WaitForExit() - продолжить выполнение основного процесса, если запущенный процесс завершился с ошибкой
написал апдейтер для программы. С помощью другого процесса проверяем наличие...

в отладчике работает, когда прошиваешь нет..дребезг.
Здравствуйте. Написал прогу для устранения дребезга от кнопки смысл ее таков....

в консоли браузера работает , а когда вставляю в код, нет
$('#Image1').src = $('#grdImages td img').src; в консоли браузера работает ,...

Когда нужно ставить скобки для функций, а когда нет
&lt;!DOCTYPE html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru