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

Asynctask execution후 뷰갱신 질문입니다.

0 추천
안녕하세요 안드로이드 독학하는 왕초보 학생입니다.

제가 앱에서 입력한 값으로 db값을 수정하고

서버에서 가져오는 값을 앱 화면에 띄우게 만들었는데요.

문제는 앱에서 서버의 값을 갱신해도 화면에는 이전값이 그대로 나온다는 거죠.

여기서 저는 execute를 한번 더 하려고 했더니 오직 한번만 execute할 수 있다고 나와서..

어떻게 하면 제가 db의 값을 앱에서 바꾼 뒤 바로 뷰를 갱신할 수 있을까요?
원펀치맨 (2,860 포인트) 님이 2016년 6월 30일 질문

1개의 답변

0 추천
말씀하신 용도로 스레드 작업이 끝난 후 결과물로 뭔가를 작업하시라고

AsyncTask에는 onPostExecute()라는 메소드가 존재합니다.

구글에 검색하시면 한글 블로그 포스팅도 많이 보이네요^^
김조조 (5,540 포인트) 님이 2016년 6월 30일 답변
네 근데 궁금한게 현재 제가 만든 어플이 앱을 실행하면 db값을 가져와서 출력해줍니다. 그리고 제가 db값을 앱에서 수정을 하게 끔 만들었는데, 수정을 한다음에 다시 수정된 db값을 출력되게 하고 싶어서 질문을 올린거거든요. 한번 execute가 돼있으면 설정해 놓은대로 지속적으로 백그라운드에서 db의 값을 다운받고있는건가요? 그저 저는 onPostExecute()만 호출하면 되는건가요?
asynctask를 execute하면 돌아가는 cycle부터 공부하셔야겠네요
onPostExecute는 doInBackground에 의해 return되는 value를 이용해 ui 작업을 하는 method로 execute시 자동으로 넘어가게 됩니다
네 근데 doInBackground를 따로 호출해도 안되던데요..어떻게하면 갱신 된 값을 바로 출력할 수 있을지 모르겠습니다..
execute를 하시면 asynctask에서 doInBackground -> onPostExecute를 자동으로 타게됩니다. doInBackground는 따로 호출할 수 있는게 아니고요
asynctask 개념부터 공부하시길 추천드려요
인스턴스를 다시 만들어 execute해서 해결봤습니다. 이게 현명한 방법인지는 모르겠지만..
...