2014-12-10 2 views
0

У меня есть служба, когда деятельность начал я связать в связи со службой следующим образом:Android: Как правильно обслуживать пользователей?

bindService(new Intent(BaseActivity.this, MyService.class), mConnection, Context.BIND_AUTO_CREATE); 

этот путь правильный?

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

И мне не нужно создавать службу, если она уже существует (уже работает в фоновом режиме). Правильно ли связать существующую службу?

Кто-нибудь знает, как я могу сделать это с правильной стороны?

Заранее благодарен!

ответ

2

1.Just Начало неограничена службы как

startService(new Intent(BaseActivity.this, MyService.class)); 

2.And Для автоматического перезапуска вашей службы, когда убит OS

в вашем onStartCommand() возвращения START_STICKY

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    return START_STICKY; 
} 

3.And Для установки Кнопки остановки

в вашем onDestroy() обслуживания снова запустить службу как

@Override 
public void onDestroy() { 
     // starting the service when the service is destroyed. 
     Intent intent = new Intent(this, YourService.class); 
     startService(intent); 
     super.onDestroy(); 

}; 

ПРИМЕЧАНИЕ: Служба будет остановлена, если вы FORCE_STOP приложения в настройках

+0

Когда я звоню startService этот метод? в классе приложений или в действии? –

+0

Нет проблем для начала anyWhere.thats на основе вашего требования –

+0

Если я вызываю метод startService в каждом действии и новый сервис, созданный снова? –

Смежные вопросы