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

标签 android

android 没有“main”方法,因此 android 应用程序的所有组件,例如 Activity 、内容提供程序都可以由 android 系统运行以响应其他应用程序的请求。

因此,假设几乎在某个时候,两个应用程序请求一个应用程序的两个组件。

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

最佳答案

操作系统和应用程序之间的大多数交互都在主线程(也称为 UI 线程)上运行。 无论应用同时收到多少“请求”,所有“请求”都由主线程中的循环程序处理。

您可以从您应用中的任何线程向这个主线程循环器添加任务:

Runnable task = buildYourTask();
new Handler(Looper.getMainLooper()).post(task);

[更新]
这是来自 android developer documentation :

The system does not create a separate thread for each instance of a component. All components that run in the same process are instantiated in the UI thread, and system calls to each component are dispatched from that thread. Consequently, methods that respond to system callbacks (such as onKeyDown() to report user actions or a lifecycle callback method) always run in the UI thread of the process.

关于android组件和线程,运行哪个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25472976/

相关文章:

java - 静态变量作为全局变量,静态对象何时被垃圾收集?

java - 在使用它之前测试弱引用 java

java - 异常 android.support.multidex.MultiDexApplication 不能投类

java - Android 将一个 fragment 导航到另一个 fragment 可以正常工作,但是看不到其他 fragment 的背景

java - Android AVD 未启动

android - 在 Android Studio 中运行所有单元测试

java - 如何使用 Android Volley 将参数发送到 Azure Functions?

android - 使用 wifi direct 在 Android 设备之间传输数据?

Android Studio 3.0.1 - 无法保存设置 : Failed to save settings. 请重启 Android Studio

java - 如何将包含负数的字符串解析为整数?