В моем приложении есть следующий сценарий. В моем приложении нет пользовательского интерфейса; вместо этого есть служба, которая запускается при загрузке и будет работать постоянно.
Как я могу настроить свой файл манифеста без основного действия? Могу ли я запустить приложение без активности? И при запуске моего приложения моя служба должна запуститься. Это возможно?
Я не хочу делать полупрозрачное Activity для запуска Сервиса.
Ответы:
Вы сказали, что не хотите использовать полупрозрачное Activity, но, похоже, это лучший способ сделать это:
Theme.Translucent.NoTitleBar
.setContentView()
.onCreate()
запустите службу сstartService()
.finish()
, запустив службу.Другими словами, ваша активность не должна быть видимой; он может просто убедиться, что ваша служба запущена, а затем выйти, что похоже на то, что вы хотите.
Я настоятельно рекомендую показать хотя бы всплывающее уведомление, указывающее пользователю, что вы запускаете Службу или что она уже запущена. Очень плохо для пользователя иметь значок запуска, который ничего не делает, когда вы его нажимаете.
источник
Да, вы можете сделать это, просто создав объект,
BroadcastReceiver
который вызывает вашService
при загрузке приложения. Вот полный ответ, который я дал.Android - запуск службы при загрузке
Если вам не нужны какие-либо значки / средства запуска для вашего приложения, вы также можете сделать это, просто не создавайте никаких действий с
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
Просто объявите,
Service
как обычно.источник
Service
загрузке, но он хочет знать, как не иметь основногоActivity
, а просто убедиться, чтоService
он запускается при нажатии значка запуска.Причина создания приложения без активности или службы может заключаться в создании приложения Homescreen Widget, которое не нужно запускать.
После запуска проекта не создавайте никаких действий. После создания проекта просто нажмите «Выполнить». Android-студия скажет
No default activity found
.Нажмите « Изменить конфигурацию» (из меню « Выполнить» ) и в части параметров запуска установите для параметра « Запуск» значение « Ничего» . Затем нажмите ОК и запустите приложение.
( Поскольку в программе запуска нет активности, приложение не будет отображаться в меню приложений. )
источник
Android Studio версии 2.3
Вы можете создать Сервис без Основного Действия, выполнив несколько простых шагов. Вы сможете установить это приложение через Android Studio и отлаживать его как обычное приложение.
Сначала создайте проект в Android Studio без активности. Затем создайте свой класс службы и добавьте службу в свой AndroidManifest.xml.
<application android:allowBackup="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <service android:name="com.whatever.myservice.MyService"> <intent-filter> <action android:name="com.whatever.myservice.MyService" /> </intent-filter> </service> </application>
Теперь в раскрывающемся списке рядом с кнопкой «Выполнить» (зеленая стрелка) перейдите к «Редактировать конфигурации» и в «Параметры запуска» выберите «Ничего». Это позволит вам установить службу без жалоб Android Studio на отсутствие основного действия.
После установки служба НЕ будет запущена, но вы сможете запустить ее с помощью этой команды оболочки adb ...
Можно проверить, работает ...
ps | grep whatever
Я еще не пробовал, но вы, вероятно, также можете автоматически запустить службу Android Studio. Это будет сделано в меню «Редактировать конфигурации».
источник