- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Lollipop 之前,生活很轻松。你有一个 main thread
- 有时也称为 UI thread
- 所有 GUI 的东西都在其中完成(并且你在任何情况下都避免长时间运行操作以避免任何类型的打嗝),并且您有自己的后台线程
,您正是在其中执行这些长时间运行的操作。
现在在 Lollipop 和更高版本的 Android 中,IIRC 术语 UI thread
似乎将用户指向新的 RenderThread
,例如用于动画的线程当主线程处理输入事件或忙于在后台为您创建新内容时, Activity 之间的涟漪、英雄元素或任何其他类型的动画需要发生。
在 Android Studio 1.3 中,所有三种线程类型现在都有自己的注释,表示一段特定的代码应该在这个特定的线程上运行。对我来说,现在的问题是:作为应用程序开发人员,我是否应该关心在 UIThread
(即 RenderThread
)上运行任何东西,并因此使用 @UIThread
在我的应用程序中?
最佳答案
UIThread
仍然是应用程序的主要执行线程。而 RenderThread
只是一个支持处理线程,可以在主 UI 线程出现延迟时帮助您的应用程序。引用自 developer.android.com:
“RenderThread
是一个新的系统管理的处理线程,即使在主 UI 线程出现延迟时也能保持动画流畅。”
对于您的问题,您应该关心在 UIThread
上运行任何东西吗?答案是肯定的,你应该改用 RenderThread
吗?如果可能的话,是的。
关于java - 我应该关心 Lollipop 及以后的主线程和 UI 线程之间的区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30609166/
我是一名优秀的程序员,十分优秀!