您的位置:beat365亚洲官方网站 > 互联网资讯 > 为什么我们能在主线程直接使用 Handler,而不需要

为什么我们能在主线程直接使用 Handler,而不需要

2019-11-27 02:29

Android应用是由Java语言进行开发的,SDK也是由Java语言编写,所以我们要学习java语言。另外,虽说kotlin语言得到了Android官方的热推,但是kotlin也是编译成了java语言再运行的。对于Android来说,只要SDK没有用kotlin重写,那么Java语言是都需要学习的。而且Android apk的后台服务器程序大概率是java语言构建,所以学习java也是一种必然。

Looper.prepareMainLooper(); 代码如下: 1/**

beat365亚洲官方网站 1

9 if (sMainThreadHandler == null) {

14 }

架构师不是天生的,在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,那就不是一件那么简单的事了,我们需要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。

Android前沿技术

10 sMainThreadHandler = thread.getHandler();

16}

可以看到在 ActivityThread 里 调用了 Looper.prepareMainLooper() 方法创建了 主线程的 Looper ,并且调用了 loop() 方法,所以我们就可以直接使用 Handler 了。

6 */

2public static void main(String[] args) {

群内还有许多免费的关于高阶安卓学习资料,包括高级UI、性能优化、架构师课程、 NDK、混合式开发:ReactNative+Weex等多个Android技术知识的架构视频资料,还有职业生涯规划及面试指导。

7public static void prepareMainLooper() {

注意:Looper.loop() 是个死循环,后面的代码正常情况不会执行。

3 * application's main looper. The main looper for your application

8

4 * is created by the Android environment, so you should never need

9 synchronized (Looper.class) {

12 }

注意:通常我们认为 ActivityThread 就是主线程。事实上它并不是一个线程,而是主线程操作的管理者,所以吧,我觉得把 ActivityThread 认为就是主线程无可厚非,另外主线程也可以说成 UI 线程。

NDK 模块开发

需要这些资料的大伙关注+私信回复“安卓资料”免费获取!

2 * Initialize the current thread as a looper, marking it as an

14

5 * to call this function yourself. See also: {@link #prepare()}

13 Looper.loop();

12 //...

beat365亚洲官方网站 2

15 throw new RuntimeException("Main thread loop unexpectedly exited");

beat365亚洲官方网站 3

11 }

15}

音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。

Java语言进阶与Android相关技术内核

3 //...

每个Handler 的线程都有一个 Looper ,主线程当然也不例外,但是我们不曾准备过主线程的 Looper 而可以直接使用,这是为何?

8 prepare;

10 if (sMainLooper != null) {

5

接下来小编做了一些关于高阶安卓的学习资料及思路,希望能够帮助到大家学习提升技术。

4 Looper.prepareMainLooper();

在 ActivityThread.main() 方法中有如下代码: 1//android.app.ActivityThread

11 throw new IllegalStateException("The main Looper has already been prepared.");

7 thread.attach;

6 ActivityThread thread = new ActivityThread();

13 sMainLooper = myLooper();

现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较 666 的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。

beat365亚洲官方网站,移动架构师

beat365亚洲官方网站 4

本文由beat365亚洲官方网站发布于互联网资讯,转载请注明出处:为什么我们能在主线程直接使用 Handler,而不需要

关键词: