2016-11-29 1 views
0

나는 현재 잘 작동하는 포 그라운드 서비스를 구현했습니다.이 서비스는 공유 환경 설정과 함께 작동합니다. 사용자가이 매개 변수를 변경하여 적용하면 환경 설정에서 새 변경 사항을로드 할 수 있도록 서비스를 다시 시작해야합니다.안드로이드 서비스 재시작 좋은 방법

내 서비스가 시작

/i를 사용하고 다시 시작하기 위해, 스위치에서 정지 :

@Override 
public void onSettingsInteraction() { 
    if(pService.isRunning()){ 
     pServiceSwitch.performClick(); 
     pServiceSwitch.performClick(); 
    } 
} 
콜백이 설정 조각의 상호 작용을 수신하는

; 이제 내 질문은; 두 통화 사이에 약간의 지연을 설정해야합니까 아니면 그대로 두어야합니까? 두 건의 전화가 너무 빨리 발생하고 서비스가 다시 시작하지 않고 중단됩니다.

+1

'서비스'를 중지하고 시작하는 대신 서비스가 매개 변수를 다시로드해야 함을 나타내는 '추가'가 포함 된 '의도'로 'startService()'를 호출하십시오. 'Service'는'onStartCommand()'에서'Intent'를 얻고 스스로를 다시 초기화 할 수 있습니다. –

+0

좋은 아이디어! 난 그것을 해결하고 지금은 그것을 테스트, 내가 스위치 상태를 별도로 변경하고 intents 함께 중지/시작, 나는 onCreate()'에 내 초기화의 대부분을 가지고 있지만'onStartCommand()'에서 수행 할 수도 있습니다, 제발 답을 게시하여 받아 들일 수 있도록, 고맙습니다. – Altaiir

답변

1

대안 대신 중지하고 Service을 시작으로, 왜 그냥 매개 변수를 다시로드해야 Service을 나타냅니다에 "추가"를 포함하는 IntentstartService()를 호출하지 않습니다. ServiceIntentonStartCommand()으로 가져오고 자체를 다시 초기화 할 수 있습니다.

관련 문제