2012-10-03 6 views
5

誰も私にここで間違っていると教えてもらえますか?AsyncTask <String、Void、Void>はどのように動作しますか?

public class BackgroungTask extends AsyncTask<String, Void, Void> { 

    public Void doInBackground(String... params) { 
     //tasks 
     return; //error occurs here! 
    } 

    public void onPostExecute(Void result) { 
     //codes 
    } 
} 

上記のクラスは戻り値に依存しません。したがって、onPostExceute()は単にそこに書かれたコードを実行します。

ありがとうございます!

+0

'Void'と' void'が異なっている、http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android/を参照してください。 os/AsyncTask.java –

+0

このサイトを参照してください。1. [Asynchronous Task_tutorial](http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/)2. [非同期タスクの説明](http://labs.makemachine.net/2010/05/android-asynctask-example/) – Aerrow

答えて

15

ただnullを返します。

public class BackgroungTask extends AsyncTask<String, Void, Void> { 

    public Void doInBackground(String... params) { 
     //tasks 
     return null; 
    } 

    public void onPostExecute(Void result) { 
     //codes 
    } 
} 
6

"return null;を使用する必要があると思います。 Voidは、通常の「void」値の周りのクラスです。 doInBackGround戻りヌルでandorid

0

doInBackGround戻るヌル値

public class BackgroungTask extends AsyncTask<String, Void, Void> { 
.... 
.... 
} 

チェック非同期タスクのためのこのAndroid dev docVoidオブジェクト(ボイド=しない)であるように..

public class BackgroungTask extends AsyncTask<String, Void, Void> { 

public Void doInBackground(String... params) { 
    //tasks 
    return null; //error occurs here! 
} 

public void onPostExecute(Void result) { 
    //codes 
} 
} 
5

+1

あなたは、なぜ** nullを返さなければならないのかを説明する必要があります。 – Luksprog

+0

@Luksprogと同意します。これは答えではありません。 –

+0

それはそのように動作します!まあ、これが答えでないなら、正しいものは何ですか? – Renjith

4

AsyncTaskは次のように動作します

onPreExecute - > doInBackGround - progressUpdatesなどを無視> onPostExecute

、できるだけ早くdoInBackGroundが完了すると、コントロールがonPostExecuteに行きます。 の返信は、このフローを中断し、エラーを引き起こします。これを解決するには、を返すreturn nullこれは無効なので、 return文のパラメータはパラメータとしてonPostExecuteに渡され、成功したかどうかを確認するために使用できます。

関連する問題