以上说法是真的还是假的?
在 Java 中的任何地方,都没有对象在线程上“运行”。方法在线程上运行。
因此,更准确的说法是Service
-- onCreate()
、onStartCommand()
、onBind()
和onDestroy()
-- 上的生命周期方法在主应用程序线程上调用。
有人可以从服务的android参考中解释这个声明吗
我不知道如何解释比写的更好。虽然 aService
可以管理后台线程,但 a本身Service
并不是a 。Thread
如果服务在 UI 线程中运行,那么它不适合繁重的工作
在 Java 中的任何地方,都没有对象在线程上“运行”。方法在线程上运行。
因此,更准确的说法是,您不应该在上述生命周期方法直接触发的工作上花费太多时间。
如果没有活动在运行,那么服务将在哪个线程中运行?
在 Java 中的任何地方,都没有对象在线程上“运行”。方法在线程上运行。
前面提到的生命周期方法在主应用线程上被调用,不管前台是否有活动,或者即使活动存在。
那么如果我在服务和活动中声明 Handler 会发生什么?
你会有一个Handler
.
因为单个 Thread 有一个 Handler 实例
的默认行为Handler
是将自身绑定到主应用程序线程,无论您是Handler
在 an 中创建 aActivity
还是在Service
.