2014-02-23 3 views
0

두 개의 활동 A, B가 있으면 둘 다 연결 수신기를 추가했습니다. A 액티비티가 B 액티비티를 시작했다는 것을 알 수 있습니다 (B가 활성화되어있을 때 A가 백그라운드에서 일시 중지됨).활동이 백그라운드에서 청취자가 깨어납니다.

이제 연결 이벤트가 발생합니다. 두 액티비티 또는 B 액티비티에서 리스너 코드를 실행합니까?

감사합니다.

답변

0

에 따라 다릅니다. 나는 항상 onResume (현재 데이터가 있는지 확인한 후)에 리스너를 등록하고 onPause에서 등록자를 등록 취소합니다. 이 방법은 그들이 꼭대기에있는 애플 리케이션에서만 화재 있는지 확인합니다. 그러나 이렇게하지 않으면 리스너 메소드가 이벤트에서 호출됩니다. 처음에 청취자로 등록 되었기 때문에 "A"가 가장 먼저 나타납니다.

가끔 청취자에게 듣기를 원할 수도 있습니다. 연결 해제시 두 가지 작업 모두 완료해야 할 수도 있습니다. 등록 취소하지 않은 경우입니다.

그래서 귀하의 유스 케이스에 따라 다릅니다.

참고 : 수신기는 어떤 경우에도 "깨어나지"않습니다. 그냥 onXXX 메서드가 호출됩니다.

+0

Perfect! 그게 내가 찾고 있던 것. onPause에 대한 등록을 취소하면 onXXX가 Activity A에서 호출되는 것을 원하지 않습니다. – Snake

관련 문제