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

쓰레드를 이용해서 3초마다 DB에 접근해서 데이터를 받아옵니다..

0 추천
Handler mHandler = new Handler(){

        public void handleMessage(Message msg){

              value++;
              Log.d("VALUE",value+"");
              if(value==3)
               new showDB().execute();
              mHandler.sendEmptyMessageDelayed(0, 1000);
        }

    };

 위의 코드처럼 3초일때 new showDB().execute();를 호출해서 DB에 접근해서 데이터를 가져오게하는데.. 죽어버리네요.. 예외처리를 안해서 그런건가요??

 

10-02 12:25:26.800: E/AndroidRuntime(11193): FATAL EXCEPTION: AsyncTask #2
10-02 12:25:26.800: E/AndroidRuntime(11193): java.lang.RuntimeException: An error occured while executing doInBackground()
10-02 12:25:26.800: E/AndroidRuntime(11193):  at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.lang.Thread.run(Thread.java:856)
10-02 12:25:26.800: E/AndroidRuntime(11193): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=6
10-02 12:25:26.800: E/AndroidRuntime(11193):  at com.example.kitchenapp.OpenActivity.showData(OpenActivity.java:319)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at com.example.kitchenapp.OpenActivity$showDB.doInBackground(OpenActivity.java:165)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at com.example.kitchenapp.OpenActivity$showDB.doInBackground(OpenActivity.java:1)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-02 12:25:26.800: E/AndroidRuntime(11193):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-02 12:25:26.800: E/AndroidRuntime(11193):  ... 5 more
닉스리 (410 포인트) 님이 2013년 10월 2일 질문

2개의 답변

0 추천
 
채택된 답변

로그를 보면 총 길이가 1인 배열(arraylist?)에서 인덱스 6을 참조하는 문제로 ArrayIndexOutOfBoundsException 이 발생하고 있네요.

com.example.kitchenapp.OpenActivity.showData(OpenActivity.java:319) 이 부분이 해당 에러 발생 부분입니다.

whitesnow (8,920 포인트) 님이 2013년 10월 2일 답변
닉스리님이 2013년 10월 2일 채택됨
0 추천
showDB.doInBackground 내부에서 뭔가 문제가 생겼습니다.

이 코드만 봐서는 뭐가 문제인지 알 수 없습니다.
익명사용자 님이 2013년 10월 2일 답변
...