2011-10-03 47 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

和什么是最好的方式联系你:) –