Tôi đang sử dụng AsyncTask
để thực hiện một số tính toán nền nhưng tôi không thể tìm thấy một cách chính xác để xử lý các ngoại lệ. Hiện nay tôi đang sử dụng đoạn mã sau:Xử lý lỗi 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...
}
}
Tôi tin rằng e Maye biến được viết/truy cập bởi tất cả các chủ đề chính và lao động. Vì tôi biết rằng onPostExecute()
sẽ chỉ chạy sau khi doInBackround()
kết thúc, tôi có thể bỏ qua bất kỳ đồng bộ hóa nào không?
Đây có phải là mã không hợp lệ không? Có cách nào được chấp thuận hoặc chính xác để xử lý các ngoại lệ trong một số AsyncTask
không?
thể trùng lặp của [AsyncTask và xử lý lỗi trên Android] (http://stackoverflow.com/questions/1739515/asynctask-and-error-handling-on-android) – blahdiblah