从其活动启动的服务是否在新线程中运行?

时间:2011-07-08 08:41:09

标签: android multithreading android-activity android-intent android-asynctask

首次从其活动中启动服务,例如

this.startService(new Intent(this,UpdaterService.class));

此服务是否在新线程中运行? 如果我把大量的工作量放在这个服务上(没有得到线程的帮助),android会显示强制关闭这个应用程序吗?

与Thread类的AsyncTask类有何不同? 哪一个用在哪里?

感谢。

2 个答案:

答案 0 :(得分:2)

Android developer manual reads

  • Service不是一个单独的过程。 Service对象本身没有 意味着它正在运行 处理;除非另有规定, 它运行在与...相同的过程中 应用程序是它的一部分。
  • Service不是主题。它不是 一个意味着自己做的工作 主线程(避免Application不 回应错误)。

答案 1 :(得分:1)

服务在不同的进程中运行,它只是一个没有用户界面的应用程序。 AsyncTask只是一个帮助程序类,可帮助您在单独的线程上执行某些操作并将其与UI线程同步,例如向用户显示当前进度。您可以在需要此类同步时使用AsyncTask,但通常使用其中任何一个都没有太大区别。希望这会有所帮助。