Одна вещь, которую вы делаете неправильно, - это продолжение выполнения doInBackground
после ошибки, которая делает невозможным продолжение по смыслу.Например:
try {
response = client.execute(request);
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Если это вызывает исключение, response
будет null
, и нет смысла продолжать дальше.Вы создадите NullPointerException
в следующем блоке кода.Это не будет фатальным, потому что вы ловите все исключения там.Однако в дальнейшем этот шаблон повторяется, и вы не перехватываете все исключения.
Вы должны выйти преждевременно, возвращая null
в качестве результата String.Затем вы можете проверить наличие null
в onPostExecute
и сообщить пользователю, что произошло изящно.