2011-12-16 2 views
0

Я использую AsyncTask для извлечения данных из RSS, я показываю прогресс Диалог в методе onpreExecute ,, parse Data in DoInbackground метод ,,, и «Удаление диалога», показывая данные в методе onPostExecute, все в порядке. Но я хочу обработать подкладку, поэтому, если пользователь нажал кнопку «Назад» при анализе данных, он может пойти back..but до сих пор, если я не оттеснил ничего бывает ..:/Удалить диалог и вернуться к предыдущему действию при анализе данных с помощью AsyncTask при нажатии кнопки «Назад»

@Override 
    protected void onPreExecute() { 
     showDialog(DIALOG_PROGRESS); 
    } 

    @Override 
    protected Boolean doInBackground(Void... params) { 
     feedParser = new activity1Parser(Bean.LINK); 

     try { 
      list = feedParser.parse(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
      return false; 
     }   
    } 

    @Override 
    protected void onPostExecute(Boolean result) { 

      activity1.removeDialog(DIALOG_PROGRESS); 

} 

ответ

2

при создании диалогового окна (в onCreateDialog), сделать его отменяемым и вызвать setOnCancelListener с слушателем, который уведомляет свою задачу, что диалог имеет было удален. Затем в onPostExecute удалите диалоговое окно, только если оно не было удалено.

+0

точно. диалоговое окно по умолчанию потребляет кнопку «Назад», поэтому вы не можете просто переопределить onBackPressed в своей деятельности. – josephus

+0

Спасибо Очень много ... это работает сейчас ... :) – Reham

+0

Я пробовал этот код со многими классами, и он работал ... но в одном из них он показывает мне NullPointerException в методе onPostExcute на android.os.AsyncTask .Finish – Reham

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

  • Нет связанных вопросов^_^