这是实现AsyncTask的最佳方式吗?还是有更好的方法?

时间:2012-03-03 17:26:07

标签: android android-asynctask

我正在尝试编写AsyncTask通用包。直到现在,我所做的是从另一个调用一个活动将Intent中的实例发送到该Activity。此活动是调用AsyncLoader.execute()文件的AsyncTask的一部分。我这样做是为了不丢失父Activity在布局上设置的任何数据。

另一种方法是调用Intent并将数据从AsyncActivity返回到父Activity。但是,这两种方法都比在父活动中实现AsyncTask慢。

但是,这会使代码变得混乱。那么,是否有更好的实施方式?

1 个答案:

答案 0 :(得分:3)

听起来你的活动和AsyncTask之间的紧密联系会导致你试图通过一种奇怪的解决方法来克服这些问题。

根据我的经验,设计需要AsyncTask的活动的最佳方法是:

  • 让AsyncTask远离您的活动,即单独创建一个类 extends AsyncTask。这允许您重用AsyncTask 在多个活动之间,使其更容易测试。
  • 如果您需要将数据返回到您的活动,请使用侦听器并在您的活动上实现侦听器。然后将您的侦听器传递给创建AsyncTask的类。

应该将意图之间的数据传递保持在最低限度,如果您需要从单独的活动重用相同的AsyncTask,您应该按照上述步骤再次执行任务。如果您要在应用的生命周期内调用此功能,请考虑使用service代替。