У меня есть приложение, которое запускается при загрузке с использованием широковещательного приемника, также у меня есть активность и процесс, потому что служба должна работать всегда на фоне, я запускаю службу на своем собственном процессе используя тег манифеста android: process.андроидный сервис работает в отдельной теме
Ui предназначен только для удовлетворения текущих потребностей, и я хотел бы, чтобы пользователь имел возможность запускать службу, даже если активность не активна.
Я начинаю службу, используя этот дополнительный параметр:
intent.putExtra(Intent.EXTRA_DONT_KILL_APP, true);
проблема заключается в том, что, когда я нажимаю кнопку назад или кнопку домой на активность по уничтожению метод называется и сервис, хотя, кажется, его работает (он появляется в диспетчере задач), он не ведет себя так, как предполагалось, он должен подключаться к сети и отправлять некоторые данные, но каждый X-время использует задачу таймера, но задача никогда не срабатывает, поэтому данные никогда не отправляются.
спасибо за совет, но 1 Я использую около 3 мб бара, который немного совместим с любой другой службой, работающей по телефону, 2 для чего он используется (дополнительный параметр)? 3 почему бы не использовать отдельный процесс? когда я должен? 4 Я знаю о диспетчере аварий, но я хочу, чтобы мои обновления в определенные периоды, которые диспетчер аварийной сигнализации не может гарантировать. – maxsap
@maxasp: 1. Android все равно. Пользователям все равно. 2. http://developer.android.com/reference/android/content/Intent.html#EXTRA_DONT_KILL_APP 3. Потому что вы тратите вдвое больше ОЗУ, не пользуясь преимуществами. 4. 'AlarmManager' работает отлично, спасибо. Если у вас есть доказательства обратного, отправьте его. – CommonsWare
Фактическое приложение - это сервис, действие которого выполняется только в первый раз, когда программа запускается, поэтому зачем использовать двойную RAM? пожалуйста, объясните, андроид восстановит память, используемую процессом активности (исправьте меня, если я ошибаюсь). Я уже прочитал эту ссылку, поэтому я использовал ее, когда говорит, что «переопределить действие перезагрузки приложения по умолчанию» не влияет на службы? Не знаю о методе setRepeating извините, но могу ли я изменить интервал динамически? в текущей форме служба получает уведомление о новом интервале и задает задачу таймера. – maxsap