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)