android — Запустите приложение Android без основной Активности и запустите Сервис по запуску приложения" />

Запустите приложение Android без основной Активности и запустите Сервис по запуску приложения

У меня есть следующий сценарий в моем приложении. В моем приложении нет пользовательского интерфейса; вместо этого есть служба, которая запускается при загрузке и будет работать непрерывно.

Как я могу настроить мой файл манифеста без основной активности? Могу ли я запустить свое приложение без активности? И при запуске моего приложения мой сервис должен запуститься. Это возможно?

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

73 голоса | спросил Meher 6 J0000006Europe/Moscow 2012, 11:11:22

4 ответа


0

Вы сказали, что не хотите использовать полупрозрачную активность, но это лучший способ сделать это:

  1. В своем манифесте установите тему "Активность" на Theme.Translucent.NoTitleBar.
  2. Не беспокойтесь о макете для своей деятельности и не вызывайте setContentView().
  3. В onCreate() в своей деятельности запустите службу с помощью startService()
  4. Выйдите из действия с finish(), как только вы запустите службу.

Другими словами, ваша активность не должна быть видимой; он может просто убедиться, что ваша служба работает, а затем завершить работу, что звучит так, как вы хотите.

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

ответил Darshan Rivka Whittle 6 J0000006Europe/Moscow 2012, 11:14:29
0

Да, вы можете сделать это, просто создав BroadcastReceiver, который вызывает ваш Service при загрузке вашего приложения. Вот полный ответ, данный мной.
Android - Пуск служба при загрузке

Если вам не нужна иконка /средство запуска для вашего приложения, вы также можете сделать это, просто не создавайте никаких действий с помощью

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Просто объявите свой Service как обычно.

ответил Lalit Poptani 6 J0000006Europe/Moscow 2012, 11:15:53
0

Android Studio версии 2.3

Вы можете создать Службу без основной активности, выполнив несколько простых шагов. Вы сможете установить это приложение через Android Studio и отлаживать его, как обычное приложение.

Сначала создайте проект в Android Studio без каких-либо действий. Затем создайте свой класс Service и добавьте сервис в свой 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 ...

am startservice -n com.whatever.myservice/.MyService

Можно проверить, работает ли он с ...

ps | grep whatever

Я еще не пробовал, но, вероятно, Android Studio также может автоматически запускать службу. Это можно сделать в этом меню «Редактировать конфигурации».

ответил Merc 20 +03002017-10-20T02:57:59+03:00312017bEurope/MoscowFri, 20 Oct 2017 02:57:59 +0300 2017, 02:57:59
0

Причиной создания приложения без активности или службы может быть создание приложения Widget, которое не нужно запускать.
После запуска проекта не создавайте никаких действий. После того, как вы создали проект, просто нажмите Run. Студия Android скажет No default activity found.

Нажмите Изменить конфигурацию и в части Параметры запуска установите значение Запуск на Ничего . Затем нажмите ОК и запустите приложение. Приложение не будет отображаться в меню приложений .

ответил Malv 28 J0000006Europe/Moscow 2018, 14:09:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132