Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Сервисы в андройд / 10 сообщений из 10, страница 1 из 1
18.11.2015, 20:27
    #39107188
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
Приложение должно выдавать напоминание при достижении человеком заданных ранее gps координат.
Все вроде бы работает, но есть моменты которые хотелось бы улучшить, прошу помощи.
Итак. Есть БД, в которой сохраняются текст напоминания и координаты. При добавлении очередного напоминания стартует сервис

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
inidAlarm = db.addRec(note1, date, time, stTypeNotif, stEI, 4, (int) Interval, doLat, doLon);

Log.d("myLogs","Notification");
Intent intent2;
intent2 = new Intent(this, WatchLocationService.class);
intent2.putExtra("myNote", note1);
intent2.putExtra("myAlarmID", inidAlarm);
intent2.putExtra("lat",doLat);
intent2.putExtra("lon",doLon);
startService(intent2);



в сервисе в onStartCommand делаем запросы на обновление координат

Код: java
1.
2.
locationManager1.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000 * 3, 5, locationListener);
        locationManager1.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000 * 3, 5,locationListener);



в locationListener, идет проверка на достижение заданных координат, используя метод google api distanceTo.

если задать точку на карте недалеко от фактического присутствия, и достаточно быстро до нее добраться напоминание срабатывает.
если же например точка достигается спустя например часов 5 напоминание не срабатывает.

кроме того на устройстве в настройках для своего приложения сколько бы я сервисов так не запустил вижу только один.
такое ощущение, что каждый последующий сервис "убивает" предыдущий.

Правильно ли я понимаю, что при запуске сервиса, он работает со своим intent'ом? и будет висеть в памяти до тех пор пока не будет остановлен stopservice? (опция для перезапуска сервиса START_REDELIVER_INTENT установлена)
...
Рейтинг: 0 / 0
18.11.2015, 21:26
    #39107210
korshun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
http://developer.android.com/intl/ru/guide/components/services.html - здесь найдешь ответы на все вопросы.
...
Рейтинг: 0 / 0
20.11.2015, 10:03
    #39108586
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
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.

Почему сервис не перезапустился после ручной остановки??
...
Рейтинг: 0 / 0
20.11.2015, 11:06
    #39108673
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
пример как создать "бессмертный сервис" тут http://development-for-android.blogspot.ru/2012/01/blog-post_3068.html
...
Рейтинг: 0 / 0
20.11.2015, 12:52
    #39108888
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
nikompпример как создать "бессмертный сервис" тут http://development-for-android.blogspot.ru/2012/01/blog-post_3068.html

это понятно, только в этом случае нужно будет позаботится об его "убивании"
...
Рейтинг: 0 / 0
20.11.2015, 12:59
    #39108902
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
сейчас попробовал реализовать код по этому примеру, сначала получилось создать сервис неубиваемым, но через некоторое время система как-то сама удалила мое приложение вместе со всеми сервисами убиваемыми и нет )). пока даже не понял как это произошло, продолжу тестировать.

Может ли система при нехватки ресурсов и при условии что сервис сделан "бессмертным" удалить приложение?
...
Рейтинг: 0 / 0
20.11.2015, 13:12
    #39108927
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
nikompсейчас попробовал реализовать код по этому примеру, сначала получилось создать сервис неубиваемым, но через некоторое время система как-то сама удалила мое приложение вместе со всеми сервисами убиваемыми и нет )). пока даже не понял как это произошло, продолжу тестировать.

Может ли система при нехватки ресурсов и при условии что сервис сделан "бессмертным" удалить приложение?


удалить, или приостановить ?

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

но на моей практике, фореграунд сервисы достаточно живуче, даже если другие приложения уже выгружены.
сервис работает.

не рассматриваю совсем древние устройства, где все похуже с этим.
...
Рейтинг: 0 / 0
20.11.2015, 14:13
    #39109025
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
Джибс,

именно удалить, может конечно глюк на телефоне случился, пока больше такого не повторялось.
android 4.0.3
...
Рейтинг: 0 / 0
21.11.2015, 22:10
    #39109864
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
nikompДжибс,

именно удалить, может конечно глюк на телефоне случился, пока больше такого не повторялось.
android 4.0.3

больше на глюк похоже.

так как удалить по идее не может.
...
Рейтинг: 0 / 0
23.11.2015, 15:45
    #39111153
nikomp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервисы в андройд
сделал сервис foreground, почистил систему от ненужных прог (освободил ресурсы) ошибка пока не повторяется
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Сервисы в андройд / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]