Создание сервиса в Android
Я создаю свое первое приложение для Android, и мне нужно использовать сервис. Пользовательский интерфейс будет иметь флажок (CheckBoxPreference), который будет использоваться для включения / выключения службы, и служба будет доступна только для моего приложения (нет необходимости делиться ею).
Пока что пользовательский интерфейс для этой функции готов, и я знаю, как реагировать на событие, но я не знаю, как создать сервис или как к нему подключиться.
Идея заключается в том, что служба продолжает прослушивать события и отвечать на них в фоновом режиме, а приложение используется только для включения / выключения или для изменения некоторых настроек.
Я искал учебники в Интернете, но я, кажется, не понимаю процесс.
2 ответа
CheckBox checkBox =
(CheckBox) findViewById(R.id.check_box);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
startService(new Intent(this, TheService.class));
}
}
});
И сервис:
public class TheService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Toast.makeText(this, "Service created!", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
Toast.makeText(this, "Service stopped", Toast.LENGTH_LONG).show();
}
@Override
public void onStart(Intent intent, int startid) {
Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show();
}
}
В Android Studio щелкните пакет правой кнопкой мыши и выберите "Создать | Сервис | Обслуживание. Теперь добавьте этот метод:
@Override
int onStartCommand(Intent intent, int flags, int startId) {
// Your code here...
return super.onStartCommand(intent, flags, startId);
}
Примечание: onStart устарела.
Чтобы запустить службу: Из метода onCreate действия (или метода onReceive получателя вещания):
Intent i = new Intent(context, MyService.class);
context.startService(i);