결과를 위해 활동이 호출되었는지 확인


83

결과를 위해 어떤 활동이 호출되었는지, 사용 startActivityForResult()하는지 또는 사용 만 시작되었는지 알 수 startActivity()있습니까?

결과를 요청하면 동작이 다를 수 있으므로이를 제어해야합니다.

답변:


166

활동이 대상 활동 startActivity()getCallingActivity()메소드에 의해 시작되면 null.

호출되었을 때 startActivityForResult()호출 활동의 이름을 반환합니다.

문서 참조 getCallingActivity():

이 활동을 호출 한 활동의 ​​이름을 반환합니다. 데이터를 setResult()받을 사람 입니다. 이 정보를 사용하여 수신자가 데이터를받을 수 있는지 확인할 수 있습니다.

참고 : 호출 활동이 결과를 기대하지 않는 경우 (즉 startActivityForResult(Intent, int), 요청 코드를 포함하는 양식을 사용하지 않은 경우 ) 호출 패키지는 널이됩니다.

보고

응답을받을 활동의 ComponentName 또는없는 경우 null입니다.


1
FLAG_ACTIVITY_NEW_TASK로 활동을 시작하면 작동하지 않습니다 :( (오류 처리기에서 컨텍스트 밖에서 로그인 활동을 시작해야했습니다). 다른 아이디어가 있습니까? 감사합니다!
bentzy

액티비티가 조각으로 시작되면 작동하지 않습니다. fragment.getActivity (). startActivityForResult (intent, requestCode);
Mario Lenci

@MarioLenci 그것은 나를 위해 올바르게 작동합니다. 내가 활동에서 시작하든 단편에서 시작하든 상관 없습니다.
Robyer

@MarioLenci는 프래그먼트에있을 때 직접 getActivity().startActivityFor…해야하는 프래그먼트에서 호출 할 필요가 없기 때문 startActivityForResult입니다.
Martin Marconcini
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.