2015-04-12 5 views
0

Я знаю, что на этот вопрос был дан ответ несколько раз раньше, и я прочитал большинство из них, но я не понимаю, почему они не работают для меня.Начало Активность от Asynctask

Я создаю своего рода Webcrawler, поэтому у меня есть Asynctask, которая анализирует код HTML на мои нужные переменные в одном классе.

Я знаю, что хочу запустить Asynctask vie OnClick, который не является проблемой, но я хочу начать другое действие после того, как Asynctask проанализировал код HTML.

Поскольку это Asynctask, я подумал, что было бы лучше начать Actitivty в OnPostExecute.

Мой код очень простой и простой, но я не знаю, почему у меня проблемы с ним.

@Override 
    protected void onPostExecute(String result){ 
     if(dialog.isShowing()){ 
      dialog.dismiss(); 
     } 
     startActivity(new Intent(context, DetailView.class)); 
    } 

контекст является переменной, в которой у меня есть контекст MainActivity и отлично работает для меня в разных точках в AsyncTask создать Toast.

DetailView.class - это активность, которую я хочу начать, которая отлично работает с MainActivity, но не на этом месте.

Проблема заключается в том, что компилятор говорит мне, что он ожидает, что android.app.Activity и фактический аргумент является «новый Intent (контекст, DetailView.class)»

Я извиняюсь за такой простой и часто уже ответили Вопрос, но я не знаю, как заставить его работать.

Благодарим за любой ответ.

+1

- это ваш AsyncTask внутренний класс? Является ли внешний класс расширением Activity? – Blackbelt

+0

Я думаю, вы используете контекст 'this'. Вы пытались заменить его 'getBaseContext()' или 'MyActivity.this'? –

+0

это рухнет? Какая ошибка? также опубликовать весь ваш код и logcat –

ответ

0

Perfect Blackbelt, мой внешний класс не продлевал активность, это было решением. Thx

0

Вы не можете обновить интерфейс на фоновом потоке. Отображение тоста и диалога - это способ обновления интерфейса.

Вы можете publishProgress(...) в методе doInBackground() и обновления пользовательского интерфейса в onProgressUpdate()

+0

. Показывать тост не является проблемой, обертывая его в Handler. Тосты также показывают Диалог, но активность DetailView не работает. –

0

Проблема решена:

context.startActivity(new Intent(context, DetailView.class)); 

Это работает, но я не знаю, почему.