У меня есть служба, которая будет отправлять уведомления с заданными задачами. Мне нужна эта служба для работы вне жизни приложения, но мне нужно только получить доступ к функциям службы в течение всего срока действия приложения. Является ли локальная служба достаточной или мне нужно реализовать AIDL? Спасибо.Вам нужно внедрить AIDL для службы, которая будет работать за пределами вашей жизни приложений?
ответ
У меня есть служба, которая будет отправлять уведомления со срочными задачами.
К этому, я надеюсь, что вы имеете в виду AlarmManager
и IntentService
, так что ваш сервис только в памяти для минимально возможного времени, достаточно, чтобы сделать немного работы, поднять Notification
и уйти. Не пишите службы, которые пытаются жить вечно, поскольку это невозможно - пользователи или операционная система убьют вашу службу.
Является ли местное обслуживание достаточным или мне нужно реализовать AIDL?
Задавая этот вопрос, я считаю, что у вас есть более фундаментальные проблемы, такие как не используя AlarmManager
и IntentService
для вашей периодической работы. Ваш рейз-а-Notification
-периодически сервис не должен запускаться, и, следовательно, не должно быть никаких «функций служб», к которым вы пытаетесь получить доступ.
AlarmManager - именно то, что я искал, и правильный способ реализовать это, спасибо. – ninjasense
Вы не «реализуете AIDL» - AIDL (определение интерфейса интерфейса Android) является рекомендуемым, но не обязательным механизмом удобства/абстракции для генерации кода, необходимого для реализации интерфейса Binder RPC, который является рекомендуемым, но не единственным способом связь с услугой.
Локальное обслуживание достаточно хорошее, но Commonsware придет и расскажет вам, почему это плохая идея, чтобы поддерживать такую долговременную службу. – Falmarri