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

Handler 다른클래스에서 SendMessage 하는 방법

0 추천
안녕하세요 현재 Volley라이브러리를 다른 클래스에 넣어서 작업중인 초보 안드로이드 프로그래머입니다.

현재 프로젝트가 메인엑티비티에서 Volley라이브러리가 있는 클래스를 객체로 만들어서 html로 데이터를 받는 방법을 하는중인데 Volley가 비동기 방식이라서 문제가 생겨 질문글을 찾아보니 핸들러를 다들 사용하라고 하셔서 해봤는데 문제가 생겨 질문글 올립니다.

1.MainActivity에 있는 뷰값을 수정해야될때는 꼭 MainAcitivity에 핸들러가 있어야 되나요??

2.현재 MainAcitivity에 핸들러를 만들고 Volley작업을 하는 클래스에 Volley작업이 끝났을때 SendMessage로 핸들러를 작동시키고 싶은데 MainAcitivity에 있는 핸들러를 어떻게 Volley작업을 하는 클래스에 참조시켜야할지 전혀 모르겠습니다. 현재 해본것은 생성자를 매개변수로 받아본것과 핸들러 자체를 static으로 선언해본것인데 둘다 에러가 나오면서 안됬습니다.
GomPro (170 포인트) 님이 2019년 8월 28일 질문

2개의 답변

+1 추천
익명사용자 님이 2019년 8월 28일 답변
답변 감사드립니다. 혹시 그렇다면 핸들러는 다른 클래스간에서 사용은 불가능한건가요?
+1 추천

아직도 volley가 업데이트가 되고 있나 보네요. 요즘엔 retrofit을 주로 씁니다. 

 

1. MainActivity 에서 결과를 받을 후에 뷰를 수정하려면 메인쓰레드에서 돌게 하면 됩니다. runOnUIThread 같은 걸로 검색하면 나올 겁니다.

 

2. MainActivity 에서 volley 의 결과를 받고, 그 결과를 다른 클래스에 넘기는 방식으로 하면 되지 않나요? 그게 아니라면 singleton 클래스에서 호출하고 값도 저장해두고, 결과를 받았다는 것만 MainActivity에서 받은 후, 다른 클래스에서는 singleton 클래스의 값을 가져가서 사용하면 될 것 같습니다. 

쎄미 (162,410 포인트) 님이 2019년 8월 28일 답변
...