Android - используя фоновый сервис
-
06-07-2019 - |
Вопрос
У меня есть смешанная служба IDL, которую я использую двумя способами:
<Ол>Так что мои вопросы
<Ол>Решение
Для сценария № 1 какая цена (если любой) я плачу за использование сервиса для сетевые вызовы вместо создания фоновый поток прямо в Активность
Я предполагаю, что, поскольку вы сказали, что это «служба IDL», это то, что я называю удаленной службой - вы используете AIDL для определения интерфейса, который используется через границы процесса.
В этом случае стоимость составляет несколько МБ ОЗУ для второго процесса, плюс немного процессорного времени для накладных расходов IPC. Сколько это "бит процессорного времени" Это зависит от того, как часто он вызывается.
Для № 2 - мне лучше переодеться реализация в AlarmManager?
Как правило, да. В идеале сервисов в памяти должно быть как можно меньше.
Я заметил, что когда я убиваю процессы с TasKiller мой сервис умирает и никогда не будет перезапущен, будет AlarmManager-base работа получше шанс на выздоровление?
Нет, потому что "убийца задач" приложения склонны злоупотреблять API-интерфейсом (по словам Дайан Хэкборн), который уничтожает все, включая запланированные тревоги. В настоящее время нет надежных & amp; эффективная защита от «убийц задач» что я знаю.