본문 바로가기

소프트웨어/Android/Java/Ndk

안드로이드 thread 생성(onCreate함수에서 txt읽기)

raw에 저장한 txt파일읽기는 여기..

http://mantdu.tistory.com/598

 

안드로이드를 프로그래밍 하면서 onCreate에 모든 함수를 다 때려박는 경우가 있다.

 

예를들어....

res/raw폴더에 잇는 txt파일을 읽는경우

 

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

 

  텍스트를 읽는 함수();

 

}

 

 텍스트를 읽는 함수()는 이미 만들어 놓았다고 가정했다.

 위의 소스와 같이 onCreate에서 thread없이 단순하게 텍스트를 읽는경우에는 문제가 생길 수 있다. txt파일이 작다면 상관이 없는데 만약 txt파일이 몇만줄 몇십만줄이라면 onCreate를 담당하는 uiThread가 텍스트를 읽는함수()를 실행하는 동안에 아무 작업을 할 수 없게 된다. (onCreate에서는 ui를 빨리 생성해줘야 하는데 작업이 더뎌진다)

 

 그래서 이런 종류의 작업을 수행해야 할 때에는 uiThread와는 별개로 thread를 생성해 주는것이 좋다.

 

 

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

 

   new Thread( new Runnable(){

       public void run(){

텍스트를 읽는 함수();

  }

   }).start();

 

}

 

 thread의 생성은 위와 같다. new Thread로 thread를 생성하고 Runnable->run을 오버라이딩 해주면된다. thread에서 작업하고자 하는 기능인 텍스트를 읽는 함수()는 run()함수 속에 배치해주면 된다.