2013-11-09 3 views
0

녹음 서비스를 작성 중이며 의도적으로 추가 데이터를 얻고 적절하게 작동합니다. 나는 START_REDELIVER_INTENT를 사용하여 모든 시작 명령에서 원래의 의도와 동일한 설정으로 녹음을 시작하지만, onStartCommand의 현재 호출이 명시적인 startService 또는 프로세스 충돌로 인한 것인지 여부를 알아야합니다.onStartCommand의 호출을 구분하십시오.

그래서 내 질문은 startService 요청의 결과로 온 onStartCommand의 호출과 서비스가 호출 된 후 시스템이 호출 한 onStartCommand invokation을 구분하는 방법입니다. 명시 적 stopSelf \ stopService없이 닫습니다.

답변

1

onStartCommand의 flags 매개 변수를 확인하십시오.

0이면 "정상"시작입니다.

플래그에 START_FLAG_REDELIVERY가 포함되어 있으면 서비스가 종료되고 다시 시작된 후 다시 전달 된 의도입니다.

플래그에 START_FLAG_RETRY가 포함되어있는 경우 이는 다시 시도되었으므로 충돌이 발생한 것으로 추정되지만 다른 상황이있을 수 있습니다.

관련 문제