2010-08-18 4 views
2

LG 이브 (LG Eve) 전화에서 응용 프로그램을 테스트하고 있습니다. 웹에서 무언가를 다운로드하려고하는 응용 프로그램이 있는데 예외가 발생하면 오류가 있음을 알리는 경고 대화 상자가 시작됩니다. 휴대 전화에 wifi 신호가 없으면 builder.create()에서 프로그램이 중단됩니다 (아래 코드 참조). 그러나 wifi 신호가 있고 예외가 다른 것 (예 : url의 오타)에 의해 throw되면 대화 상자는 예상되는 방식으로 시작됩니다. 왜 이것이 될 수 있는지에 대한 단서가 있습니까? 이 onCreateDialog에 대한AlertDialog.Builder create() 메서드를 수행하는 동안 응용 프로그램이 충돌 함 - Android

코드 : AsyncTask를위한

@Override 
protected Dialog onCreateDialog(int id){ 

    Dialog d = null; 
    switch (id){ 

    case DIALOG_DATA_ERROR_ID: 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage(getResources().getString(R.string.error_data)); 
     builder.setCancelable(false); 
     builder.setNeutralButton("OK", new DialogInterface.OnClickListener(){ 

      public void onClick(DialogInterface d, int id){ 

       d.cancel(); 
      } 
     }); 
     d = builder.create(); 
     break;  
    } 
    return d; 
} 

코드이 ShowDialog를 호출

private static class DownloadJSONTask extends AsyncTask<String, Void, String>{ 


    private ProgressDialog dialog; 
    private Activity parent; 
    private JSONParserInterface jsonParser; 

    public DownloadJSONTask(Activity parent, JSONParserInterface jsonParser){ 
     this.parent = parent; 
     this.jsonParser = jsonParser; 
    } 

     protected void onPreExecute(){ 

      dialog = ProgressDialog.show(parent, "Loading", "Please Wait...", true); 

     } 

     protected String doInBackground (String... urls){    

      try { 

      return HttpHelper.getResponse(urls[0]); 

      }catch (Exception e){ 
       dialog.cancel(); 
       parent.showDialog(BoomSetListActivity.DIALOG_DATA_ERROR_ID); 
      } 

      return null; 

     } 

     protected void onPostExecute(String json){ 
      dialog.cancel(); 
      if (jsonParser != null) jsonParser.parse(json); 
     } 


} 
+0

예외에 대한 logcat/전체 스택 추적을 표시 할 수 있습니까? 덕분에 –

답변

6

doInBackground에서 대화 상자를 표시하지 않습니다. 이 메서드는 UI 스레드에서 실행되지 않습니다. onPostExecute 또는 onProgressUpdate에서 오류 대화 상자를 표시해보십시오.

+0

! 위대한 작품을 지금 – meow

관련 문제