2012-01-11 2 views
0

Я пишу приложение для Android, которое транслирует живое радио. Я установил задачу async, чтобы отобразить диалог выполнения, пока поток загружается. Это работает отлично, однако, когда он сталкивается с потоком, который «вниз» и не работает, мое приложение падает, и я просто хочу знать, как лучше всего справиться с этой ошибкой.Ошибка обработки задачи Async

Вот код:

public class loadingData extends AsyncTask<Object, Object, Object>{ 


    protected void onPreExecute() { 

     progDialog = new ProgressDialog(radioplayer.this); 
      progDialog.setMessage("Loading radio station"); 
      progDialog.setIndeterminate(true); 
      progDialog.setCancelable(false); 
      progDialog.show(); 

    } 
    protected Object doInBackground(Object... arg0) { 

     prs.setStation(strStation);   
     return null; 
    } 
    protected void onCancelled() { 

     super.onCancelled(); 
    } 
    protected void onPostExecute(Object result) { 

     progDialog.hide(); 
    } 
    protected void onProgressUpdate(Object... values) {  
    } 
} 
+1

опубликуйте свой журнал ошибок –

ответ

0

Что вы можете сделать (я использую этот трюк в моем приложении) заключается в следующем:

protected Object doInBackground(Object... arg0) { 
    try { 
     prs.setStation(strStation); 
     return null; 
    } 
    catch(Exception ex) 
    { 
     return ex; 
    } 
} 


protected void onPostExecute(Object result) { 
    progDialog.hide();   
    if(result != null && result instanceof Exception) { 
     String errText = ((Exception)result).getMessage(); 
     //now deal with your exception on the UI thread 
    } 
} 
+1

-1 Я думаю, что это довольно уродливо, особенно тип возвращаемого объекта. Если вы должны объединить обработку исключений и возвращаемые значения, по крайней мере, объявить функцию return как Exception. Но даже в этом случае идея о возврате null или исключении кажется вонючей. – Elemental

+0

Спасибо за объяснение «-1». В моем коде я не возвращаю тип 'Object', а возвращаю' String', который является либо «null», либо содержит сообщение об ошибке. Это служит моей цели. Я сохранил тип возвращаемого объекта «Объект», как это задал человек, задающий вопрос. –

+0

Aleks Спасибо, спасибо, спасибо! Он работает как шарм и спас меня много времени. Приветствия. – user615099

1

Дубликат this

Если вы использование Roboguice - это сборка способов обработки исключений в задачах async.

Смежные вопросы