onStartCommand에서 전달 된 Intent가 NULL이되는 이유
onStartCommand(Intent, int, int)
시스템이 다음과 같은 플래그를 통해 서비스를 다시 시작하는 것 외에 전달되는 Intent가 NULL 이되는 다른 이유가 START_STICKY
있습니까?
또한 시스템에서 서비스를 다시 시작할 때 Intent.getAction()
메서드가 NULL을 반환하는 경우도 있습니다. 의도는 NULL이 아닙니다.getAction()
나도 여기서 물 었지만 아직 답변을받지 못했습니다.
업데이트 : Mark Murphy와 채팅 한 후, 그는 전체 인 텐트가 다시 시작된 후 전송되도록 대신 내 서비스 START_REDELIVER_INTENT
의 onStartCommand()
콜백으로 반환하도록 제안했습니다 START_STICKY
.
서비스가 무언가를하려고한다면 그 중간에 서비스가 다시 시작 될까봐 걱정했기 때문에 처음에이 작업을 수행하지 않았습니다. 나는 그것이 내가 책임 져야 할 논리라고 생각한다 :)
들어오는 플래그에 대한 논의가 없다는 것에 놀랐습니다. 다음과 같이 로그에서이를 모니터링 할 것입니다.
if (null == intent || null == intent.getAction ()) {
String source = null == intent ? "intent" : "action";
Log.e (TAG, source + " was null, flags=" + flags + " bits=" + Integer.toBinaryString (flags));
return START_STICKY;
}
업데이트 : 플래그가 0이어서 실행 가능한 것이 없었습니다. 기능 손실없이 null 수표를 그대로 두었습니다.
편집 : 좋아, 모든 장소의 START_STICKY 문서에서 찾았습니다! "서비스에 전달 될 보류중인 시작 명령이없는 경우 null 인 텐트 개체와 함께 호출되므로주의해서 확인해야합니다."
http://developer.android.com/reference/android/app/Service.html
'program tip' 카테고리의 다른 글
C # / WinForms에서 다국어 애플리케이션을 만드는 모범 사례? (0) | 2020.08.29 |
---|---|
템플릿 엔진을 사용하는 이유는 무엇입니까? (0) | 2020.08.29 |
상속 보안 규칙을 위반하지 않고 .NET 4+에서 ISerializable을 구현하려면 어떻게해야합니까? (0) | 2020.08.29 |
java.lang.NoClassDefFoundError : android / graphics / drawable / Icon (0) | 2020.08.29 |
주식 / 재무 데이터를위한 최고 / 가장 포괄적 인 API (0) | 2020.08.29 |