Android:AsyncTask或使用ExecutorService的普通Java线程

Tob*_*ias 13 java multithreading android

我的应用程序使用a Service做一些背景的东西.我在服务中使用其他线程来进行一些计算.为此,我每隔5到10秒创建两个线程,运行5到10秒.但我不知道我应该使用哪个线程模型:

  1. 的AsyncTask:

    优点:

    • 使用方便
    • 特定于android
    • 简单的UI交互

    缺点:

    • 由于我必须使用API​​级别10,因此没有ExecutorService固定的线程池来执行AsyncTasks
  2. 普通Java线程:

    优点:

    • 具有固定线程池的ExecutorService

    缺点:

    • 不太容易处理,例如UI交互

哪种型号更好用?特别是在关注性能方面.当我使用AsyncTasks时,是否存在繁重的开销,并且ExecutorService在重用线程方面比Android更快创建新的AsyncTasks?

Com*_*are 13

如果查看实现AsyncTask,您将看到它使用"普通Java线程"使用自己的线程池.

当我使用AsyncTasks时,是否存在繁重的开销,并且ExecutorService在重用线程方面比Android更快创建新的AsyncTasks?

两者之间应该没有实质性的区别.