내 프로젝트에서 장기 실행 스레드의 콜백으로 BroadcastReceiver
을 사용하고 있습니다 (예 : 작업이 완료되었음을 알리고 작업자 Thread
의 응답 데이터를 보내 작업이 사용자에게 적절한 메시지를 표시 할 수 있도록 함). ..). BroadcastReceiver
s를 사용하려면 브로드 캐스트 수신기를 등록 할 때마다 브로드 캐스트 리시버를 등록 할 때마다 등록을 취소하고 더 많은 작업 (예 : 다운로드, WebService 전화 등 ..). 또한 브로드 캐스트의 의도를 통해 사용자 지정 개체를 보내려면 개체도 만들 필요가 Parcelable
.Android BroadcastReceiver 또는 간단한 콜백 메소드?
이 방법과 달리 콜백 메소드 접근법은 내가 사용하는 방법보다 단순 해 보입니다. 콜백 메소드는 BroadcastRecaiver의 앱 메시징과 같은 효과를 얻기 위해 사용할 수있는 간단한 인터페이스 메소드 구현입니다. 이 접근법은 복잡한 객체를 반환하기 위해 Parcelable 구현을 필요로하지 않으며 BroadcastReceiver
과 같은 키를 사용하지 않습니다. 콜백 메소드를 호출하기 전에 Null 값에 대한 콜백 객체를 확인해야한다는 잘못된 부분이 있다고 생각합니다. 또한 오류없이 UI를 업데이트 할 수 있도록 UI 스레드에서 구현 코드를 실행하는지 확인해야합니다.
좋아, 내가 무슨 말을 하려는지 이해했으면 좋겠다.
이제는 단일 응용 프로그램 내에서 사용되는 BroadcastReceiver
접근 방식보다 콜백 방식이 더 좋습니다 (더 가볍고 깔끔하며 빠름). (배경 작업에 안드로이드 Service
을 사용하지 않음에 유의하십시오. AsyncTask
및 Thread
)
고마워요!
나는 이것을 가장 좋은 답변이기 때문에 답으로주고 현상금을줍니다. 당신의 모든 생각에 감사드립니다! – Cata
우수 답변. 나는 콜백/인터페이스 패턴의 팬이지만 방송 의도 패턴을 광범위하게 사용하여 프로젝트를 상속하고 종종 잘못된 방향으로 가고 있는지 궁금해합니다. 그것은 실제로 모범 사례 라기보다 디자인 선호의 문제라는 것을 듣는 것이 좋다. 나는 인터페이스에 의해 제공되는 타입 안전성과 코드 명확성을 좋아한다. 아마도 나는 지금 그것들을 고수 할 것이다. –
매우 흥미롭고 상세한 의견 +1 – Jorgesys