안드로이드 thread 생성(onCreate함수에서 txt읽기)
raw에 저장한 txt파일읽기는 여기..
안드로이드를 프로그래밍 하면서 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()함수 속에 배치해주면 된다.