Подтвердить что ты не робот

Приложение Android как услуга без активности

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

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

Я попытался удалить Activity, но тогда приложение не запускается и не запускается. Мой вопрос: могу ли я сделать приложение точно так же, как Google Play Services, чтобы другие приложения могли использовать его Service.

Если да, то фрагмент или образец будут очень приветствуемыми.

4b9b3361

Ответ 1

Конечно! Нет причин, по которым вы не можете иметь приложение только с услугой.... и вам не нужно входить в AIDL, если вы этого не хотите.

Проблема заключается в том, как заставить приложение работать. Когда вы создаете приложение с активностью, вы добавляете в манифест фильтр Intent, который запускает активность с Launcher. Если нет активности, вам нужно будет найти другой способ ее запуска.

Это легко сделать. Просто запустите намерение от одной из ваших других программ, например:

startService(new Intent("my.service.intent"));

... где служба зарегистрирована ваш манифест, например:

        <service android:name=".SomeService" >
          <intent-filter>
            <action android:name="my.service.intent"/>
          </intent-filter>

Вы можете использовать это намерение для передачи параметров Parcelable в службу, и служба может ответить, передавая намерения обратно.

Конечно, startService и broadcastIntent немного неуклюжи, если вам действительно нужен сложный API между приложениями и вашим сервисом. Если вам нужно что-то более богатое, вы захотите изучить AIDL и Bound Service.

Отредактировано для добавления Intent Filter