这篇文章主要讲解了“Android怎么开发App启动流程与消息机制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android怎么开发App启动流程与消息机制”吧!什么是ThreadLocal呢,专业的来讲,ThreadLocal 是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储以后,只有再指定线程中可以获取到存储的数据,对于其他线程来说则无法获取到数据,是共享数据变量存储,通俗的来讲,就是保存每个线程的数据,肯定大家都没听懂,没事的,接下来我们通过代码来解释ThreadLocal的具体作用首先看一个例子打印结果1主线程–> data–1
2主线程–> data–2
线程2—> data–1
3主线程–> data–2
线程3—> data–>3从上面的例子我们可以看到,ThreadLocal保存一个String这个变量,这个变量初始化会有一个值,在接下来的线程种,每个线程都会拥有一个初始值,这个初始值在主线程中,一旦这个初始值发生改变,如果是在主线程种改变如进行set,则后面的子线程获取的都是这个改变后的值,但是如果子线程种也改变了这个值,则只在当前子线程种有此值 没其子线程还是获取的主线程种那个值,我们来简单画个图给大家ThreadLocal种的三个重要方法简单来讲,就是自己有的,用自己的,自己没有就用初免费云主机域名始化的,初始化改变了,后面的也改变,但是自己设置的,还是用自己的,就这么简单,好了,接下来进行下一步我们看下Android的源码我们重点看下 Looper.prepareMainLooper();
这个方法我们再点击去看,myLooper很惊讶的看见了 sThreadLocal
,这里是调用get方法这里我们可以看到ThreadLocal保存的是Looper这个对象这里调用了set方法,创建了一个全局唯一的Looper创建了一个全局唯一的主线程消息队列创建一个handler,重写handleMessage方法发送消息到这里我们明白了,也就是再app启动后那个唯一的Queue,好了我们整理下Handler的消息机制hander发送消息的时候,调用sendMessage方法,handler种会讲消息放到全局的消息队列中queue.enqueueMessage(msg, uptimeMillis)
接着就会在MessageQueue种赋值全局消息消息处理消息消费感谢各位的阅读,以上就是“Android怎么开发App启动流程与消息机制”的内容了,经过本文的学习后,相信大家对Android怎么开发App启动流程与消息机制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!
这篇文章主要介绍了django中资源文件夹如何引入及配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇django中资源文件夹如何引入及配置文章都会有所收获,下面我们一起来看看吧。Django 是一个由 Python 编写的一个开…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。