1. 백그라운드 스레드를 돌리면 ui가 block되는건 막을 수 있겠지만 근본적인 속도 개선은 없을거에요. 속도 문제는 db자료가 크다는 것과 SQLite를 사용하는게 문제이니까요. 2. 그럼에도 불구하고 ui단에서 발생하는 문제는 많이 줄어들겁니다. 단지 자동완성 결과가 좀 늦게 뜨겠죠. 3. 저라면 로컬 sqlite에는 사용자가 실제로 입력했던 히스토리만 count와 함께 저장하고, 자동완성은 네트워크를 통해 서버에서 받아올거에요. 그럼 사용자가 잘 쓰는 단어를 먼저 띄워주고, 네트워크를 통해 나머지 목록도 받으면 될테니까요. 물론 서버를 추가하는건 다 돈이니... 현실적으로 안 될수도 있지요.