【问题标题】:Is using AsyncTask on every activity a good practise?在每个活动上使用 AsyncTask 是一个好习惯吗?
【发布时间】:2013-08-13 09:51:30
【问题描述】:

我想知道在我的应用程序的每个活动中使用AsyncTask 是否是一种好习惯?我需要提高我的活动加载速度,AsyncTask 应该可以解决问题。这样做有风险吗?

【问题讨论】:

    标签: android android-activity android-asynctask


    【解决方案1】:

    如果您想确定什么需要时间,请使用Traceview 来分析活动。在确定导致延迟的罪魁祸首之前尝试优化通常是一个坏主意。

    话虽如此,您应该启用Strict Mode 以尽早发现性能错误。

    祝你好运!

    【讨论】:

      【解决方案2】:

      根据 developer.google 所说:

      AsyncTask 允许正确且轻松地使用 UI 线程。此类允许在 UI 线程上执行后台操作并发布结果,而无需操作线程和/或处理程序。

      您可以在没有低于 API 级别 10 的asynctask 的情况下执行所有流程。 但你应该在有可能时使用它

      您的流程将需要很长时间才能执行,并且它正在您的主 UI 上运行。 这种类型的过程可能就像您正在连接到服务器、使用互联网、下载一些图像、运行一个 url。在上述所有情况下,您都必须使用异步任务,以便这些进程不会在 MainUI 上运行并且不会阻塞您的 main 。

      此链接将以某种方式帮助您。 :)

      【讨论】:

      • +1 链接,我应该先找到延迟的原因。目前我认为gridview 中的图像质量可能会降低应用程序的速度。我仍然可以尝试通过降低图像质量来解决它。
      【解决方案3】:

      这取决于你真正想要什么。你必须记住,你不可能拥有一切。如果你想提高速度,你将不得不释放空间。 AsyncTasks 会占用更多空间。

      每次你都会有内存 x 处理之间的这种关系

      【讨论】:

        【解决方案4】:

        简短的回答:如果它像你说的那样提高了速度。比这还不错。

        【讨论】:

          【解决方案5】:

          通过调用 AsyncTask,你最终会创建另一个由系统维护的线程。所以,取决于你必须在活动中加载什么。如果你的加载是繁重的操作,那么你应该调用 asysnctask 而不是阻塞你的 UI 线程。您的应用程序最终只会在运行时消耗更多内存..

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-01-03
            • 2020-05-03
            • 2016-01-03
            • 2019-08-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多