2010-12-05 4 views
6

Я создаю свое первое приложение для Android и мне нужно использовать сервис. Пользовательский интерфейс будет иметь флажок (CheckBoxPreference), который будет использоваться для включения/выключения службы, и доступ к сервису будет доступен только моему приложению (нет необходимости делиться ею).Создание службы на Android

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

Идея состоит в том, что служба продолжает прослушивать события и отвечать на них в фоновом режиме и что приложение используется только для включения/выключения или для изменения некоторых параметров.

Я искал учебники в Интернете, но, похоже, я не получаю этот процесс.

ответ

10
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(); 
    } 
} 
+3

Линия StartService (новый Intent (это, TheClass.class)); следует читать: startService (новый Intent (это, TheService.class)). И не забудьте добавить службу в AndroidManifest.xml – PedroC88 2010-12-05 17:55:50

1

В Android Studio, щелкните правой кнопкой мыши пакет, а затем выберите команду Создать | Сервис | Обслуживание. Теперь добавьте этот метод:

@Override 
int onStartCommand(Intent intent, int flags, int startId) { 
    // Your code here... 
} 

Примечание: OnStart является устаревшим.

Чтобы запустить службу: От метода OnCreate активностью, (или OnReceive метод трансляции приемника):

Intent i = new Intent(context, MyService.class); 
context.startService(i); 
Смежные вопросы