我正在使用<条码>AsyncTask进行某些背景计算,但我无法找到处理例外情况的正确办法。 目前,我使用以下法典:
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...
}
}
我认为,变数(e)可由主线和工人线书写/使用。 我知道,onPostExecute(
) 只有在填写了do InBackround(
之后才能运行,我能否放弃任何同步?
这种坏的法典吗? 在<条码>AyncTask中是否有处理例外情况的商定或正确方式?