2011-10-03 9 views
7

何も渡していない場合、AsyncTaskをインスタンス化して呼び出し、クラスを拡張するにはどうすればいいですか?AndroidのAsyncTaskに何も渡さない

また、UIのテキストビューを計算結果に設定しています。

おかげで、 ベン

答えて

10

私はあなたが私はすべてのパラメータを要求しませんAsyncTaskを書くのですかだっ依頼するどのような意味だと思います。そのトリックは、クラスの拡張でパラメータと戻り値として使用するものを定義することです:例えば class MyClass extends AsyncTask<Void, Void, Void>はパラメータを期待せず、どちらも返しません。 AsyncTask<String, Void, Drawable>文字列(または複数の文字列)を期待しonPostExecute結果にparamsは、結果ビットマップなし(独自onPostExecute方法独自doInBackground方法から)非同期ため

+0

ありがとう、それは非常に便利です。構築したカスタムビューにテキストを設定する必要があります(パラメータが設定されていないか返されていません)。どうすればいいですか? –

+0

ビューへの参照を渡すAsyncTaskクラスでコンストラクターを作成できます。これをクラスの変数に保存すると、その変数を使用して 'onPostExecute'メソッドでテキストを設定できます。あなたは 'onPostExecute'でそれを行う場合を除いて、アンドゥスレッド(あなたのAsyncTask)でUIを変更することを許可していないので、' onPostExecute'にテキストを設定してください。 – Lars

19

例の実装を描画領域を返し

/** 
* My Async Implementation without doInBackground params 
* 
*/ 
private class MyAsyncTask extends AsyncTask<Void, Void, Bitmap> { 

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

     Bitmap bitmap; 

     .... 

     return bitmap; 
    } 

    protected void onPostExecute(Bitmap bitmap) { 

     .... 
    } 
} 

でこの実装を追加する必要があります:

MyAsyncTask myAsyncTask = new MyAsyncTask(); 
myAsyncTask.execute(); 
+0

myAsyncTask.execute、isn 'パラメータを供給する必要がありますか? –

+0

はい。その場合、関数はパラメータなしで実行できます。さらに詳しい情報が必要な場合は、私に連絡してください。 –

+0

とあなたに連絡する最も良い方法は何ですか:) –

関連する問題