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

db불러올때 asynctask 꼭 써야하나요?

0 추천
안녕하세요. 안드로이드 초보 개발자입니다.

DB에 있는 데이터를 불러와 리스트뷰에 표시해주는거를 해보고 있습니다.

근데 그냥 전체 DB를 쿼리해서 리스트뷰에 표시할 아이템에 넣어주고 notifyDataSetChanged 호출해줘두 문제없이 동작하더라구요.

근데 몇몇 예제를 보면 DB를 불러올때 AsyncTask를 이용하구 있네요.

꼭 AsyncTask가 필요한지 궁금합니다.

조언 부탁드려요!!
블랙이요블랙 (12,860 포인트) 님이 2017년 1월 6일 질문

1개의 답변

0 추천
꼭 필요한것은 아니지만 ANR을 회피하기 위해서는 사용해야 하지요.

ANR이라는것은 사용자 입장에서 어플리케이션으로부터 응답이 없는 현상 즉 가만히 멈춰있는 현상을 말합니다.

프로그램 정책상 사용자 인터페이스는 항상 사용자로부터 응답을 대기 하고 있어야 하므로 UI쓰레드에서 시간복잡도가 큰 작업은 되도록 피해야 합니다. 예를 들어서 파일스트림이나 통신 같은 I/O 작업을 말합니다.

DB 같은경우도 데이터 양이 많아지는경우 UI쓰레드를 오랫동안 붙잡을수 있으므로 회피하기 위하여 질문자님이 보신 예제소스에서도 비동기쓰레드인 AsynTask를 사용한 것일 겁니다.
Development Guy (70,570 포인트) 님이 2017년 1월 6일 답변
...