В моем приложении у меня есть активность, из которой я хочу запустить службу. Может ли кто-нибудь помочь мне?
Запуск службы из активности
Ответ 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))
}