Как приложения работают в фоновом режиме в любом случае. Я предполагаю, что вы действительно спрашиваете, как вы заставляете приложения делать вещи в фоновом режиме. Приведенное ниже решение заставит ваше приложение работать в фоновом режиме после открытия приложения и после перезагрузки системы.
Ниже я добавил ссылку на полностью рабочий пример (в форме Android Studio Project)
Эта тема, по-видимому, выходит за рамки документации по Android, и, похоже, нет ни одного всеобъемлющего документа по этому вопросу. Информация распространяется в нескольких документах.
Следующие документы говорят вам косвенно, как это сделать:
https://developer.android.com/reference/android/app/Service.html
https://developer.android.com/reference/android/content/BroadcastReceiver.html
https://developer.android.com/guide/components/bound-services.html
В целях обеспечения правильности ваших требований к использованию важная часть вышеприведенного документа, которую необходимо внимательно прочитать: #Binder, #Messenger и ссылка на компоненты ниже:
https://developer.android.com/guide/components/aidl.html
Вот ссылка на полностью рабочий пример (в формате Android Studio): http://developersfound.com/BackgroundServiceDemo.zip
Этот проект запустит Activity, которая привязывается к услуге; реализация AIDL.
Этот проект также полезен для пересчета в целях IPC в разных приложениях.
Этот проект также разработан для автоматического запуска при перезапуске Android (при условии, что приложение было запущено хотя бы один раз после установки и приложение не установлено на SD-карте)
Когда это приложение / проект запускается после перезагрузки, оно динамически использует прозрачное представление, чтобы создать видимость, что ни одно приложение не запущено, но служба связанного приложения запускается корректно.
Этот код написан таким образом, что его очень легко настроить для имитации запланированного обслуживания.
Этот проект разработан в соответствии с вышеуказанными документами и впоследствии является чистым решением.
Однако есть часть этого проекта, которая не является чистой: я не нашел способа запустить службу при перезагрузке без использования Activity. Если у кого-нибудь из вас, читающих это сообщение, есть простой способ сделать это, пожалуйста, оставьте комментарий.