안녕하세요. 서비스 관련해 질문이 있어서 글을 올립니다.

백그라운드에서 소켓 통신을 하기 위해 서비스로 소켓 통신을 하게끔 만들고 있습니다.

리모트서비스 형식으로 만들었으며, AIDL을 통해 콜백과 외부 노출 메서드들을 지정하고 제작했습니다.

그런데 외부 노출 메서드들에는 인자값이나 반환값이 JAVA 기본 형식이라 문제가 안되는데

콜백 부분을 작성하면서 문제가 생겨 질문을 올립니다.

서비스에서 돌아가는 소켓으로 받은 데이터를 처리해야할 액티비티가 여러개 존재해서 각 액티비티마다 서비스에 처리할 콜백 함수를 등록하였습니다. 여기까지는 잘되었습니다.
 
그런데 문제가 된것이 네트웍으로 데이터가 전송되었을 때 받은 값을byte[] 형식으로 콜백으로 넘겨야하는데, 배열은 AIDL에서 지원을 안하는건지 넘길 수가 없더군요.

이 부분의 해결 방식이 궁금합니다.


그리고 두번째 질문은 서비스를 한 프로세스내에서 사용하는데, 굳이 AIDL을 작성하고 리모트서비스 형식으로 만들 필요가 있을까입니다.

제가 리모트서비스로 제작중인 이유가 외부로 메소드들을 노출하기 쉬워보이고 콜백 등록때문에 한건데

AIDL 작성없이 그냥 로컬 서비스로 제작해서 사용가능한건지 궁금합니다.

로컬서비스에서 콜백등록 및 메소드 노출 등은 어떻게 처리하면 되는지 궁금합니다.

서비스내 메서드 사용은 onServiceConnected가 호출될때 바인더를 통해 서비스에 등록된 메서드들을 사용하면 될것같긴한데...

콜백 등록을 어떻게 할지 모르겠습니다. 그리고 로컬서비스 사용시에도 AIDL 작성 때 처럼 반환값이나 인자값이 JAVA 기본형이여야 되는지 궁금하네요.



허접한 질문 죄송하구요.. 아시는분 제발 답변 부탁드립니다. 절박한 상황이라서요..ㅠㅠ