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);
}
}
예외에 대한 logcat/전체 스택 추적을 표시 할 수 있습니까? 덕분에 –