앱의 라이센스고지를 위해 asset의 라이센스를 적어논 txt 파일을 읽어서 다이얼로그 액티비티에
표시하고자 작업을 했습니다.
근데 라이센스 내용이 조금 길다보니 액티비티 넘어가는 딜레이가 1초정도 생기기에 라이센스 표시하는
부분을 AsyncTask로 돌리고 그 사이 메인스레드에서는 프로그레스바를 돌리려고 하였습니다.
@Override
protected String doInBackground(String... arg0) {
try {
Thread.sleep(2000);
text = "abcd";
/*
InputStream is = getAssets().open("copyright.txt");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
text = new String(buffer);
noticelicence.setText(text);
*/
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
라이센스파일 읽는 부분입니다.
근데 위 소스의 주석부분을 해제하고 돌리면(Thread.sleep은 주석처리) AsyncTask까지 다 돌고난후에
해당 액티비티가 뜨더라구요,,(프로그레스바는 당연히 구경도 못함..)
이게 뭐지 해서 위 소스 처럼 Thread.sleep을 넣고 돌리니
정상적으로 액티비티 뜨고 2초 동안 프로그레스바 뜬후에 abcd가 찍히거든요..?
이거 어떻게 이해하면 될까요..? 제가 여기서 뭐 잘못 알고있는게 있을까요...? 도와주세요..
내용 추가 합니다. 일단 Thread.Sleep(1000)을 무조건 주게해서 강제적으로 프로그레스 바를 보여주기는
했는데 찜찜하네요.. 왜 이런지.. 이해가 안가서...