마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서버통신후 값 받아오기 질문입니다.

0 추천
Retrofit2 를 사용하여 통신을 하는데요

API가 많아서 통신을 하는곳을 따로 빼두었습니다 클래스로요

그래서 엑티비티나 프래그먼트에서 클래스의 메서드를 호출하여 API통신을 하는데

return으로 통신 후 값을 받아오려 했지만 안되기에 다른방법을 찾고있습니다.

 

인터페이스를 이용해여 콜백을 만드는건 3~40개 되는 api 를 하나하나 다 만들고있으면 너무 힘들것같구요...

다른방법이 있는지 해서 이렇게 질문 남깁니다.
정에약한마음 (1,160 포인트) 님이 2017년 6월 23일 질문

1개의 답변

0 추천
콜백을 만들어도, 사실상, SUCCESS냐, FAIL이냐, ERROR냐에 따라서 넘겨줄 데이터가 API 마다 다를 수 있어서, 사실상 별로죠.

그냥 activity를 넘겨서, activity의 public mathod를 class에서 호출하게 하는게 더 편할 듯 싶습니다.

범용화할 수 있다면 BaseActivity의 public method를 호출하는 것도 방법인데요... baseactivity가 있어야 하고요. callback의 파라미터가 API마다 다를 것이기에, 별로 그닥 좋지 않아요.

다만 이럴 경우, 하나의 API를 여러 activity에서 호출하게되면, class가 조금 지저분해 지지요.

저는 그래서 자주 사용하는 API는 base acitivity에서 호출하도록 바꾸긴 했습니다.

API별로 콜백을 만드는 게 더 깔끔 할 수도 있습니다. 시간이 많다면,..
Will Kim (43,170 포인트) 님이 2017년 6월 26일 답변
우선 하나는 그런방식으로 사용중입니다 프래그먼트 객체 자체를 넘겨서 변수에 값을 바꿔주는...
근데 그런방식이 공용으로 사용이 불가능해져서 콜백을 사용하려한건데 고민이네요 ㅠㅠ
...