1

Twitter の oauth アクティビティに asynctask を実装しようとしていますが、2 つのエラーが発生します。asynctask がコンシューマ オブジェクトを返すようにしたいと思います。

これが私のコードです:

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

@Override
protected OAuthConsumer doInBackground() {

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

2つのエラーが発生します

  1. getCommonsHttpConsumer: タイプ getCommonsHttpConsumer は、継承された抽象メソッド AsyncTask.doInBackground(Void...) を実装する必要があります。

  2. doInBackground(): タイプ getCommonsHttpConsumer のメソッド doInBackground() は、スーパータイプ メソッドをオーバーライドまたは実装する必要があります

私は何を間違っていますか?

4

3 に答える 3

1

AsyncTaskのドキュメントを調べると、次のことがわかります。-

AsyncTask<Params, Progress, Result>

以来、あなたはこれとしてあなたを与えましたAsyncTask<Void, Void, Void>、あなたの

protected OAuthConsumer doInBackground()

それらのエラーをスローしています。

のリターンタイプをまたはに変更doInBackground()VoidAsyncTask修正AsyncTask<Void, Void, OAuthConsumer>します。

于 2013-02-26T04:17:40.433 に答える
1

コンパイラーが教えてくれることを読み、ドキュメントにも精通してください。クラス宣言のパラメーター化を変更して、doInBackgroundが(varargs)でaceptを返すことを宣言する必要がOAuthConsumerありdoInBackground()ますVoid...

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

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

また、(ドキュメント以外の)良い説明はここにあります。

于 2013-02-26T04:18:35.833 に答える
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
    }
}

詳細については、ドキュメントを確認してください。

于 2013-02-26T04:24:40.613 に答える