在我的项目中,我使用了大量的AsyncTask
s。他们通过http将一些数据发送到服务器。在其中一些我传递数据execute( data... )
。在其他人中,我使用构造函数:
new SomeTask().execute( 1, 2, 3 );
或
new SomeOtherTask( 1, 2, 3 ).execute();
基本上这些调用是等效的,因为AsyncTask
无法重复使用且无状态。
使用这些的最佳方式是什么?我错过了什么吗?
答案 0 :(得分:0)
在我看来,将参数传递给execute
方法(如果它们都共享相同的类型,那么当然)。使用自定义构造函数会强制您编写它并将参数存储在私有变量中,这是无用的,除非在OnPostExecute
方法中使用这些参数。
答案 1 :(得分:0)
使用new SomeTask().execute( 1, 2, 3 );
它比将值传递给构造函数更好。如果将输入作为参数传递给构造函数,则需要创建成员变量,这将是多余的,因为AsyncTask允许我们在execute方法中传递变量参数。
除非需要为传递给AsyncTask的输入维护成员变量,否则不应使用构造函数来传递输入。