当前位置:网站首页 > Vue.js开发 > 正文

autolisp全局变量(autojs全局变量)



可能有读者看了,呵呵,在想着,现在获取context对象多简单啊,还有必要说吗,好吧,那我问一个问题,在还没有初始化应用程序的application的时候能获取到Contex对象吗,或者在不能接触程序逻辑的情况下能获取Context对象吗?不能吧,如果不能,那就继续往下看吧.
众所周知,Context的含义是上下文,也就是场景的意思,关于获取全局Context的方法,一般情况是在自定义的Application中写一个,需要的时候直接获取就可以了,下面是代码所示:


上面的代码是写在自定义的Application中的,以后我们需要获取全局Context的时候就用BaseApplication.getContext()方法即可,请注意,上面的方法只是一般情况下的,就是我们已经进入了这个程序里面,但是就像刚才说的那样,如果不能接触程序逻辑,或者连Application都没有初始化的时候能获取吗,显然不能吧?那是不是就没有办法了?不是滴,经过查看源码,我们发现应用程序的入口里面就提供了获取全部Application的方法,这个类是ActivityThread,这个类也是大名鼎鼎的Android应用程序的主线程,它里面做的事情可多了呢,包括初始化消息循环机制等等,这也是为什么在主线程里面可以直接new 一个Handler的原因,而不用绑定线程的Looper,当然,本文讨论的问题不是Looper,而是全局Context对象,我们发现,ActivityThread有一个方法:

利用这个方法我们可以获取全局Application对象,当然也就可以获取全局Context对象啦,可问题是ActivityThread是一个隐藏类,怎么办呢,那就反射吧,下面是代码

测试结果如下:

TrimRequestInterceptor对全局的参数进行处理_主线程

可以看到成功获取了Application对象,那么获取Context就容易啦,而且我们看到,这样反射获取的跟直接程序调用的结果是一样的,其实这也很好理解,总之,这种方法一般情况下是在特殊的时候使用,比如注入的操作可能使用到,好了,今天的博文就写到这里,有什么疑问提出来,其实ActivityThread还有一个静态方法直接获取application,获取的结果也是这个,都是一样的,大家去试试吧。需要补充的是,这个方法是无敌的,就像标题所说,任何地方,任何时候,任何逻辑,只要程序进入了主线程就能获取,而不是仅仅局限于网上说的在自定义的application中获取

到此这篇autolisp全局变量(autojs全局变量)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • nvme 接口定义(nvme2.0接口)2025-03-06 07:00:08
  • ubuntu 20.04镜像(ubuntu18.04镜像)2025-03-06 07:00:08
  • vmware12.0密钥(vmware 12 密钥)2025-03-06 07:00:08
  • vue2生命周期都干了什么(vue生命周期分别做了什么)2025-03-06 07:00:08
  • vue2(vue2父子组件传值)2025-03-06 07:00:08
  • plsql注册码永久2023(plsql9.0注册码)2025-03-06 07:00:08
  • vue路由守卫控制页面跳转(vue路由守卫怎么实现)2025-03-06 07:00:08
  • js深拷贝数组(js深拷贝json parse)2025-03-06 07:00:08
  • Redhat9.4安装(redhat6.9安装)2025-03-06 07:00:08
  • vue安装脚手架步骤(vue脚手架使用教程)2025-03-06 07:00:08
  • 全屏图片