2011-10-03 74 views

回答

10

我想你的意思是問什麼是我該怎麼寫的AsyncTask不要求任何參數。訣竅是定義你期望在你的類的擴展中使用什麼作爲參數和返回值: class MyClass extends AsyncTask<Void, Void, Void>例如,不期望任何參數,也不返回任何一個參數。 AsyncTask<String, Void, Drawable>需要字符串(或多個字符串),並返回一個可繪製對象(從它自己的doInBackground方法其自身onPostExecute方法)

+0

謝謝,這是非常有幫助的。我需要在我構建的自定義視圖上設置一些文本(沒有參數設置或返回),但我該怎麼做? –

+0

您可以在傳遞對視圖的引用的AsyncTask類中創建構造函數。如果將它保存在類中的變量中,則可以使用該變量在'onPostExecute'方法中爲其設置一些文本。不過,請務必在'onPostExecute'中設置文本,因爲Android不允許您在nonUI線程(您的AsyncTask)中更改UI,除非在調用myAsyncTask.execute時在'onPostExecute' – Lars

19

用於異步實施例實現,而不在onPostExecute結果PARAMS和結果位圖

/** 
* 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

中執行此操作,有必要提供參數? –

+0

是的。在這種情況下,該功能可以不帶參數地執行。如果您需要更多信息,請與我聯繫。 –

+0

和什麼是最好的方式聯繫你:) –