Ich verwende AsyncTask
, um einige Hintergrundberechnungen durchzuführen, aber ich finde keine korrekte Möglichkeit, Ausnahmen zu behandeln. Derzeit bin ich mit dem folgenden Code:Asynctask Fehlerbehandlung
private class MyTask extends AsyncTask<String, Void, String>
{
private int e = 0;
@Override
protected String doInBackground(String... params)
{
try
{
URL url = new URL("http://www.example.com/");
}
catch (MalformedURLException e)
{
e = 1;
}
// Other code here...
return null;
}
@Override
protected void onPostExecute(String result)
{
if (e == 1)
Log.i("Some Tag", "An error occurred.");
// Perform post processing here...
}
}
Ich glaube, dass die Variable e maye sowohl von dem Haupt- und Worker-Thread geschrieben/zugegriffen werden. Wie ich weiß, dass onPostExecute()
wird nur ausgeführt werden, nachdem doInBackround()
beendet ist, kann ich keine Synchronisation weglassen?
Ist das ein schlechter Code? Gibt es einen vereinbarten oder korrekten Weg, Ausnahmen in einer AsyncTask
zu behandeln?
möglich Duplikat [AsyncTask und Fehler auf Android Handhabung] (http://stackoverflow.com/questions/1739515/asynctask-and-error-handling-on-android) – blahdiblah