안드로이드 개발 질문/답변
(글 수 45,052)
public class SerchMain extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_main);
SearchThread tSearchThread = new SearchThread( this );
tSearchThread.start();
}
public void ViewSearchingDialog(){
Log.d("SerchMain", "onCreateDialog CALL");
dlg = onCreateDialog(ID_PROGRESS_BAR);
Log.d("SerchMain", "onCreateDialog CALL End");
dlg.show();
}
protected Dialog onCreateDialog(int id)
{
ProgressDialog dlgProgress = new ProgressDialog(this);
if(id == ID_PROGRESS_BAR){
dlgProgress.setMessage("Loading...");
dlgProgress.setIndeterminate(true);
dlgProgress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dlgProgress.setCancelable(false);
}
return dlgProgress;
}
}
public class SearchThread extends Thread {
public SerchMain m_SerchMain = null;
public SearchThread( SerchMain cSerchMain ){
this.m_SerchMain = cSerchMain;
}
public void run(){
//dialog start
Log.d("SearchThread","SearchThread Start!!");
Log.d("SearchThread","SearchThread ViewSearchingDialog CALL!!");
this.m_SerchMain.ViewSearchingDialog();
Log.d("SearchThread","SearchThread ViewSearchingDialog CALL END!!");
Log.d("SearchThread","SearchThread End!!");
try{
Thread.sleep(5000);
}catch(Exception e){
}
}
}
위의 코드에서 액티비티 생성시 Thread를 띄웠습니다. 그리고 Thread의 run에서 부모 class의 dialog를 생성하는 코드를 실행했는데요 dialog생성시에 runtime exception이 나네요
04-18 07:38:28.936: ERROR/AndroidRuntime(744): Uncaught handler: thread Thread-8 exiting due to uncaught exception
04-18 07:38:28.936: ERROR/AndroidRuntime(744): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at android.os.Handler.<init>(Handler.java:121)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at android.app.Dialog.<init>(Dialog.java:105)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at android.app.AlertDialog.<init>(AlertDialog.java:63)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at android.app.ProgressDialog.<init>(ProgressDialog.java:80)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at android.app.ProgressDialog.<init>(ProgressDialog.java:76)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at com.btb.solution.baha.sarch.SerchMain.onCreateDialog(SerchMain.java:174)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at com.btb.solution.baha.sarch.SerchMain.ViewSearchingDialog(SerchMain.java:166)
04-18 07:38:28.936: ERROR/AndroidRuntime(744): at com.btb.solution.baha.sarch.SearchThread.run(SearchThread.java:18)



