android组件和线程,哪个线程运行?

时间:2014-08-24 14:56:05

标签: android

android没有" main"方法,所以Android应用程序的所有组件,如活动,内容提供者都可以由android系统运行,以响应其他应用程序的请求。

所以,假设在近一段时间,两个应用程序请求ONE app的两个组件。

我的问题是那些组件会在一个线程或不同的线程中运行吗?

2 个答案:

答案 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())在主应用程序线程上运行。