안드로이드 개발 질문/답변
(글 수 45,052)
ApiDemo에 보면
AIDL을 통해 CallBack메소드를 구성하는부분이있는데요,
RemoteCallbackList란걸 이용해서 하더군요...
그런데 저는 같은프로세스내에서
Activity-Service간에서 콜백함수를 만들어주려고하는데요...
ApiDemo를 통해 AIDL , RemoteCallbackList를 참고해서 했는데...
이렇게 해도 상관없는건가요????...
구지 AIDL없이 그냥 CallBack함수 만드는법은없나요...???
Service값 변경을 알려면 받는 Activity쪽에서도 스레드를 돌려야할것같던데...
효과적인 방법이 있는지 조언부탁드립니다
AIDL을 통해 CallBack메소드를 구성하는부분이있는데요,
RemoteCallbackList란걸 이용해서 하더군요...
그런데 저는 같은프로세스내에서
Activity-Service간에서 콜백함수를 만들어주려고하는데요...
ApiDemo를 통해 AIDL , RemoteCallbackList를 참고해서 했는데...
이렇게 해도 상관없는건가요????...
구지 AIDL없이 그냥 CallBack함수 만드는법은없나요...???
Service값 변경을 알려면 받는 Activity쪽에서도 스레드를 돌려야할것같던데...
효과적인 방법이 있는지 조언부탁드립니다
2010.05.03 21:51:38
음... 동일 어플에 동일 프로세스라면 구지 bindService 를 통하지 않고도, Application 단의 멤버 함수나, (권장되는 사항은 아니지만...) static 변수를 이용해서도 간단하게 콜백 함수를 구현 하실 수 있습니다.
API 예제에 나와있는 형식
http://d.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalServiceBinding.html
으로 LocalService 를 구현 하셨다면, bindService 하 고 ServiceConnection 의 onServiceConnected 호출 시에 LocalService 인스턴스 자체를 전달 받을 수 있습니다. 따라서, 간편하게 구현하신 Service 에 Callback 함수를 등록할 수 있는 public 메서드를 하나 추가하시고, 해당 함수를 호출 하시면 됩니다.