活动和服务是否在同一个线程中运行?

Kan*_*aad 3 android android-service android-activity

我对Handler,服务和活动的基本概念感到困惑.我在很多地方都看到过提到服务在UI线程中运行.关于这个陈述,我有几个问题.

  • 以上陈述是真还是假?
  • 有人可以从Android参考服务解释这个声明

    服务不是一个线程.它本身不是从主线程开始工作的手段(以避免应用程序无响应错误).

  • 如果服务在UI线程中运行,那么它不适合繁重的工作.真假 ??
  • 如果没有活动正在运行,那么哪个线程服务将运行?如果上述陈述是真的.
  • 如果上述说法属实?那么如果我在服务中宣布处理程序以及活动将会发生什么?因为单个Thread有一个Handler实例.
请原谅我,如果问题太过正常.

Com*_*are 5

以上陈述是真是假?

在Java中的任何地方都没有对象"运行".方法在线程上运行.

因此,更准确的说法是,生命周期方法上Service- ,,onCreate() 和-被称为主应用程序线程上.onStartCommand()onBind()onDestroy()

有人可以从Android参考服务解释这个声明

我不知道怎么解释比写的好多了.尽管Service 可以管理一个后台线程,一个Service是不是自己一个Thread.

如果服务在UI线程中运行,那么它不适合繁重的工作

在Java中的任何地方都没有对象"运行".方法在线程上运行.

因此,更准确的说法是,您不应该花费太多时间在上述生命周期方法直接触发的工作中.

如果没有活动正在运行,那么将运行哪个线程服务?

在Java中的任何地方都没有对象"运行".方法在线程上运行.

无论前台是否存在活动,或者即使存在活动,也会在主应用程序线程上调用上述生命周期方法.

那么如果我在服务中宣布处理程序以及活动将会发生什么?

你会有一个实例Handler.

因为单个Thread有一个Handler实例

默认行为Handler是将自己绑定到主应用程序线程,无论您是Handler在a Activity还是a中创建Service.