-1

그것의 구현에,뿐만 아니라 겉으로는 일부 장치는 겉으로는 -1과 동일 RESULT_OK를 반환하지, 내가 많이의 본 적이은 근본적으로 onActivityResult입니까?

텐트 엑스트라에 필요한 모든 데이터를 포함하는 동안 단지 오해의 소지가 0을 반환 구글 예제 코드는 resultCode에 대한 조건을 더 이상 간단하게하지 않지만, 새로운 이름을 더 좋아하기 때문에 전혀 기능이없는 메소드를 사용하지 않으려는 구글의 성향에 비추어, 아무 것도 깨지 않으면 서 그것을 폐기 할 수있다. 새로운 onActivityResult를 오버로드하여 단순히 메서드 매개 변수로 resultCode.

기술적 인 설명이나 프로토콜을 통과 특정 메시지가 단순히 실패 듯 것에 대한 블로그 게시물이 있다면 나는 어이 어쩌면 이의 resultCode에 의존하지 않는다 "라는 다음 문서에 어떤 갱신하지 않고, 궁금

임의의 운 또는 이유 "

+3

왜 0이 오해의 소지가 있습니까? –

+3

"일부 장치와 마찬가지로 일부 장치는 겉으로보기에는 RESULT_OK를 -1로 반환하지 않고 단지 오해의 여지가있는 0을 반환합니다. 아마도 여러분이 시작한 응용 프로그램은'setResult ()','setResult()'를'RESULT_CANCELED'라고 부른다. 그 반대의 증거가 있습니까? "많은 Google 예제 코드가 resultCode에 대한 조건을 더 이상 사용하지 않는 것을 보았습니다."- 링크 또는 발생하지 않았습니다. :-) – CommonsWare

+0

@CommonsWare의 가장 좋은 예 (현재 겪고있는 것은 아닙니다)는 카메라와 갤러리의 의도가 예상대로 기능하고 여전히 결과가 취소 된 것을 본 것입니다. 아직 URI가 있고 적절히 만들어진 파일과 모든 것입니다. 요청을 계속할 필요가 있습니다. requestCode가 여전히 취소되었습니다. – CQM

답변

4

결과 코드 값은 특정 활동의 구현에 의해 정의 된 계약입니다. Android가 정의한 유일한 계약은 결과 코드가 정수라는 것입니다.

안드로이드는 성공 (RESULT_OK)과 실패 (RESULT_CANCEL)에 대한 간단한 상수를 정의했지만,이를 사용하고 싶은지, 어떤 목적으로 다른 값을 사용하는지, 결과를 설정하지 않을지 결정하는 것은 행동에 달려 있습니다 코드 (기본값은 RESULT_CANCEL). 대부분의 경우, 단순 성공 또는 실패가 충분하지 않고 액티비티가 다른 int 값을 반환합니다.

즉, 활동의 원천 (또는 문서,하지만 계약서에 정의되어있을 가능성이 낮음)을 확인해야 할 필요가 있다는 것입니다.