2013-02-26 3 views
1

Я пытаюсь реализовать asynctask в twitter oauth, но я получаю 2 ошибки. Я хотел бы, чтобы asynctask возвращала объект-потребитель.попытка asynctask android

Вот мой код:

class getCommonsHttpConsumer extends AsyncTask<Void, Void, Void> { 

@Override 
protected OAuthConsumer doInBackground() { 

    return new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET); 
} 
} 

я получаю две ошибки

  1. getCommonsHttpConsumer: Тип getCommonsHttpConsumer должен реализовать унаследованный абстрактный метод AsyncTask.doInBackground (Пустота ...)

  2. doInBackground(): метод doInBackground() типа getCommonsHttpConsumer должен переопределить или реализовать метод супертипа

что я делаю неправильно?

+0

Если какой-либо из наших ответов помог, вы должны принять лучший. Если нет, вы всегда можете оставить отзыв. –

ответ

1

Если вы смотрите в документации по AsyncTask, вы увидите, что это: -

AsyncTask<Params, Progress, Result> 

Так, вы дали ваш AsyncTask<Void, Void, Void> как это, ваш

protected OAuthConsumer doInBackground() 

бросает эти ошибки ,

Изменить тип возвращаемого doInBackground() либо Void или AsyncTask к AsyncTask<Void, Void, OAuthConsumer>, чтобы исправить это.

1

Читайте, что компилятор вам говорит, а также ознакомьтесь с документацией. Вам необходимо изменить настройку параметров на объявлении класса, чтобы объявить, что doInBackground возвратит OAuthConsumer Также есть doInBackground() принимают в Void... (переменной длины):

class getCommonsHttpConsumer extends AsyncTask<Void, Void, OAuthConsumer> { 

@Override 
protected OAuthConsumer doInBackground(Void... params) { 

также хорошее объяснение (в стороне от документации) можно найти here.

0

Вот что нужно сделать:

class getCommonsHttpConsumer extends AsyncTask<Void, Void, OAuthConsumer> { 

    @Override 
    protected OAuthConsumer doInBackground() { 

     return new CommonsHttpOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET); 
    } 

    @Override 
    protected void onPostExecute(OAuthConsumer result) { 
     // process result 
    } 
} 

Проверить documentation более подробно.

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