|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
Приложение должно выдавать напоминание при достижении человеком заданных ранее gps координат. Все вроде бы работает, но есть моменты которые хотелось бы улучшить, прошу помощи. Итак. Есть БД, в которой сохраняются текст напоминания и координаты. При добавлении очередного напоминания стартует сервис Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
в сервисе в onStartCommand делаем запросы на обновление координат Код: java 1. 2.
в locationListener, идет проверка на достижение заданных координат, используя метод google api distanceTo. если задать точку на карте недалеко от фактического присутствия, и достаточно быстро до нее добраться напоминание срабатывает. если же например точка достигается спустя например часов 5 напоминание не срабатывает. кроме того на устройстве в настройках для своего приложения сколько бы я сервисов так не запустил вижу только один. такое ощущение, что каждый последующий сервис "убивает" предыдущий. Правильно ли я понимаю, что при запуске сервиса, он работает со своим intent'ом? и будет висеть в памяти до тех пор пока не будет остановлен stopservice? (опция для перезапуска сервиса START_REDELIVER_INTENT установлена) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2015, 20:27 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
http://developer.android.com/intl/ru/guide/components/services.html - здесь найдешь ответы на все вопросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2015, 21:26 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
korshun, спасибо, за ссылку, перечитал еще вот это http://www.startandroid.ru/ru/uroki/vse-uroki-spiskom/159-urok-94-service-podrobno-pro-onstartcommand.html теперь поведение приложения более или менее понятно. когда проходит длительное время в настройках приложений вижу картинку <Имя сервиса> процессов: 0, служб: 0 Перезапуск. Т.е. я так подозреваю что просто у системы не хватает ресурсов для перезапуска моего сервиса. Попробовал провести тест. Запустил приложение, сервис стартанул. В настройках приложения нашел свой сервис (<Имя сервиса> процессов: 1, служб: 1), остановил его вручную и он почему то не перезапустился или не должен был? Напомню, что устнаовлена опция START_REDELIVER_INTENT. Почему сервис не перезапустился после ручной остановки?? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 10:03 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
пример как создать "бессмертный сервис" тут http://development-for-android.blogspot.ru/2012/01/blog-post_3068.html ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 11:06 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
nikompпример как создать "бессмертный сервис" тут http://development-for-android.blogspot.ru/2012/01/blog-post_3068.html это понятно, только в этом случае нужно будет позаботится об его "убивании" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 12:52 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
сейчас попробовал реализовать код по этому примеру, сначала получилось создать сервис неубиваемым, но через некоторое время система как-то сама удалила мое приложение вместе со всеми сервисами убиваемыми и нет )). пока даже не понял как это произошло, продолжу тестировать. Может ли система при нехватки ресурсов и при условии что сервис сделан "бессмертным" удалить приложение? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 12:59 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
nikompсейчас попробовал реализовать код по этому примеру, сначала получилось создать сервис неубиваемым, но через некоторое время система как-то сама удалила мое приложение вместе со всеми сервисами убиваемыми и нет )). пока даже не понял как это произошло, продолжу тестировать. Может ли система при нехватки ресурсов и при условии что сервис сделан "бессмертным" удалить приложение? удалить, или приостановить ? да даже бессмертный сервис убьет. вся фишка в приоритете, чем "выше" ваш сервис в списке, тем позже его система убьет при нехватке ресурсов как правило в фореграунд сервисы выше обычных находятся, системные сервисы в самом верху. но на моей практике, фореграунд сервисы достаточно живуче, даже если другие приложения уже выгружены. сервис работает. не рассматриваю совсем древние устройства, где все похуже с этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 13:12 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
Джибс, именно удалить, может конечно глюк на телефоне случился, пока больше такого не повторялось. android 4.0.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2015, 14:13 |
|
Сервисы в андройд
|
|||
---|---|---|---|
#18+
nikompДжибс, именно удалить, может конечно глюк на телефоне случился, пока больше такого не повторялось. android 4.0.3 больше на глюк похоже. так как удалить по идее не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2015, 22:10 |
|
|
start [/forum/topic.php?fid=13&msg=39108673&tid=1331226]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 386ms |
0 / 0 |