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

DB insert 때문에 앱이 몇초간 멈춥니다.(작동소스 첨부)

0 추천

우선.. DB를 공부하시는 분들께 도움이 되었으면 하여 DB클래스를 첨부합니다.

 

본론으로 가서.....

웹을 파싱하고 while을 돌리면서 insert를 시도합니다...

이 과정에서 약 20~25초가 소요됩니다.............

멈출경우도 있긴합니다..

 

물론.. 트랜잭션이란걸 압니다.

근데.. 현재 제가 해놓은 구조상에서는 각각 insert시에 트랜잭션이 걸릴수밖에 없습니다..

 

DataHelper 를 별도로 만들어서 여기서 데이터 작업을 하는데..

메인에서는 DataHelper.insert( .. )를 실행하는데 이 구문이 while()안에 들어간다는 겁니다..

while안에서 할 수 밖에 없는게.. data를 파싱해서 가져오는 값을 족족 넣고 있기 때문입니다.

 

 

파싱하는 과정에서 source를 전부 가져오기에.. 느린감도 있지만,, insert 때문에 버튼이 눌린채로 멈춰버리니..

답답합니다.

 

 

아래는.. DataHelper.java를 만들어서 사용하는 곳이며..

메인액티비티에서 insert를 할 때는 DataHelper.insert(값들..) 이렇게 사용합니다.

 

막 입문하시는 분들께 도움이 되었으면하여 DataHelper 풀소스를 첨부합니다.

 

 

바이트수가 넘어가.. 파일을 경로를 추가합니다.

http://ddaying.tistory.com/attachment/cfile1.uf@211DD93553D24C282CADFE.java

개발자초심 (21,220 포인트) 님이 2014년 7월 25일 질문

1개의 답변

0 추천

메인 액티비티에서 쓰레드를 사용하여

DataHelper.insert(값들..)를 호출하시면 UI가 얼어버리는 걸 방지할 수 있습니다.

isul (7,920 포인트) 님이 2014년 7월 25일 답변
원인을 알았습니다... parsing 에서... 많은 시간이 소요되네요...
하.. html 파싱은 방법이 없나보네요..
그렇죠. 실제로 DB에 값을 넣고 하는 시간은 얼마 되지 않을 겁니다. 엄청나게 대량이 아니라면요... 그걸 웹을 통해 읽어 들이는 시간이 엄청날뿐...
...