1

我知道有多种方法可以将一些数据从AsyncTask调用返回Activity。我可以使用Message来自的对象,Handler或者我可以使用Interface-based两者的方法,Activity并且我AsyncTask实现相同的接口(使用传递数据的方法)。

然后还有其他方法,例如public调用中的方法Activity并将其传递ActivityAsyncTask然后Activity's用结果数据填充字段列表。onPostExecute或从调用中覆盖Activity,依此类推,依此类推。

现在,就内存消耗和执行速度而言,哪种方法最好使用?

注意:如果我们采用 SO 专家的评级,我看到评级为 20k+ 的人建议MessageInterface-based接近。一些经验较少但仍拥有 10k+ 信用的人建议其他解决方案,例如我提到的第 3 个解决方案。这是我困惑的根源,因为他们中没有人提到他们的解决方案有多么“沉重”。

4

1 回答 1

1

传递活动不是一个好方法。因为这是对内存的负担。(所有字段都从以前的活动加载到内存中)。它也使这两个活动紧密结合。

前 2 个是正确的方法,具体取决于场景。

  1. 基于消息的通信消耗了大量的安卓操作系统资源。对于收到的每条消息,操作系统都会查找与其关联的所有处理程序。它主要用于当您的活动必须与各种其他活动以及应用程序外部的活动进行通信时。

  2. 在您的情况下,基于接口/回调方法更优惠。如果您的活动必须与较少的活动和在您的应用程序中进行通信。它将消耗更少的内存和来自 android OS 的计算开销

于 2014-06-05T17:11:25.847 回答