android没有" main"方法,所以Android应用程序的所有组件,如活动,内容提供者都可以由android系统运行,以响应其他应用程序的请求。
所以,假设在近一段时间,两个应用程序请求ONE app的两个组件。
我的问题是那些组件会在一个线程或不同的线程中运行吗?
答案 0 :(得分:1)
操作系统和应用程序之间的大多数交互都在主线程(AKA UI线程)上运行。 无论有多少"请求"该应用程序同时收到所有"请求"由主线程中的looper处理。
您可以从应用中的任何线程向此主线程循环器添加任务:
Runnable task = buildYourTask();
new Handler(Looper.getMainLooper()).post(task);
[更新]
这来自android developer documentation:
系统不会为每个a实例创建单独的线程 零件。在同一进程中运行的所有组件都是 在UI线程中实例化,并对每个组件进行系统调用 从该线程发送。因此,回应的方法 系统回调(例如onKeyDown()报告用户操作或a 生命周期回调方法)总是在进程的UI线程中运行。
答案 1 :(得分:0)
组件不在线程上运行。对象不在线程上运行。 方法在线程上运行。
组件的生命周期方法(例如活动的onCreate()
)在主应用程序线程上运行。