将数据传递给AsyncTask:执行(args)vs构造函数?

时间:2014-10-30 10:35:08

标签: android constructor android-asynctask

在我的项目中,我使用了大量的AsyncTask s。他们通过http将一些数据发送到服务器。在其中一些我传递数据execute( data... )。在其他人中,我使用构造函数:

new SomeTask().execute( 1, 2, 3 );

new SomeOtherTask( 1, 2, 3 ).execute();

基本上这些调用是等效的,因为AsyncTask无法重复使用且无状态。

使用这些的最佳方式是什么?我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

在我看来,将参数传递给execute方法(如果它们都共享相同的类型,那么当然)。使用自定义构造函数会强制您编写它并将参数存储在私有变量中,这是无用的,除非在OnPostExecute方法中使用这些参数。

答案 1 :(得分:0)

使用new SomeTask().execute( 1, 2, 3 );

它比将值传递给构造函数更好。如果将输入作为参数传递给构造函数,则需要创建成员变量,这将是多余的,因为AsyncTask允许我们在execute方法中传递变量参数。

除非需要为传递给AsyncTask的输入维护成员变量,否则不应使用构造函数来传递输入。