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

Запуск службы из активности

В моем приложении у меня есть активность, из которой я хочу запустить службу. Может ли кто-нибудь помочь мне?

4b9b3361

Ответ 1

Приложение может запустить службу с помощью Context.startService. Метод будет вызывать метод onCreate для службы, если служба еще не создана; иначе будет вызываться метод onStart. Вот код:

Intent serviceIntent = new Intent();
serviceIntent.setAction("com.testApp.service.MY_SERVICE");
startService(serviceIntent);

Ответ 2

Добавьте это в свой код

Intent serviceIntent = new Intent(this, ServiceName.class);
    startService(serviceIntent);

Не забудьте добавить служебный тег в файл AndroidManifest.xml

<service android:name="com.example.ServiceName"></service>

В официальной документации Android:

Предостережение. Служба работает в том же процессе, что и приложение в который он объявлен и в основном потоке этого приложения, по умолчанию. Таким образом, если ваша служба выполняет интенсивные или блокирующие операции в то время как пользователь взаимодействует с активностью из того же приложения, служба замедлит работу. Чтобы избежать воздействия производительность приложения, вы должны начать новый поток внутри обслуживание.

Ответ 3

В API Demos есть несколько примеров запуска служб.

Ответ 4

Использовать метод Context.startService().

И прочитайте this.

Ответ 5

Сначала создайте службу из файла android Manifest.xml (т.е. со вкладки приложения) и дайте ему некоторое имя.
  О деятельности на некоторых событиях, таких как щелчок или касание, чтобы включить код из службы:

public void onClick(View v)
{
    startService(new Intent(getApplicationContext(),Servicename.class));
}

Если вы хотите остановить запущенную или запущенную службу, включите этот код:

public void onclick(View v)
{
    stopService(new Intent(getApplicationContext,Servicename.class));
}

Ответ 6

Если вы хотите запустить службу и запустить ее в фоновом режиме, используйте START_STICKY в соответствующей службе.

Вы также можете запустить servvice при загрузке,

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

И создайте ресивер,

<receiver android:name=".auth.NotificationBroadcast" android:enabled="true" >
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

В приемнике Brodcast add,

@Override
    public void onReceive(Context context, Intent intent) {

        System.out.println("BroadcastReceiverBroadcast--------------------ReceiverBroadcastReceiverBroadcastReceiver----------------BroadcastReceiver");

        if (intent != null) {
            String action = intent.getAction();

        switch (action) {
            case Intent.ACTION_BOOT_COMPLETED:
                System.out.println("Called on REBOOT");
                // start a new service 
               startService(new Intent(getApplicationContext(),Servicename.class));

                break;
            default:
                break;
        }
    }
}

И ваш сервис похож,

Ответ 7

в kotlin вы можете запустить сервис из деятельности следующим образом:

   startService!!.setOnClickListener { startService() }

   private fun startService(){
    startService(Intent(this, HitroService::class.java))
   }