Удалите диалоговое окно и вернитесь к предыдущему действию при анализе данных с помощью AsyncTask при нажатии кнопки «Назад». - PullRequest
0 голосов
/ 16 декабря 2011

Я использую AsyncTask для извлечения данных из RSS, я показываю диалоговое окно выполнения в методе onpreExecute ,, анализ данных в методе DoInbackground ,, и удаление диалогового окна ,,, отображая данные в методе onPostExecute,, все в порядке .. но я хочу обработать кнопку, поэтому, если пользователь нажал кнопку "Назад" при анализе данных, он может вернуться назад ... но до сих пор, если я нажал назад, ничего не произойдет ..: /

@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);

}

1 Ответ

2 голосов
/ 16 декабря 2011

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

...