请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

beforeEvaluate和afterEvaluate

请问老师beforeEvaluate和afterEvaluate,监听的生命周期和写到那个project里面有关系吗?例如:写在根目录下面的build.gradle,是监听的所有子工程配置走完调用afterEvaluate吗还是。。。?如果:配置到某一个子工程的build.gradle,监听的是某一个子工程配置完就回调afterEvaluate?还是所有工程走完才执行。我试验出的结果这两个生命周期没什么规律挺乱的,请老师赐教

正在回答

2回答

没有规律,在那个project里写,就只监听当前工程的evaluate,监听不到其它工程的,即使是他的子工程。

0 回复 有任何疑惑可以回复我~
  • 提问者 彩色的沙漠 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-07-24 22:00:36
提问者 彩色的沙漠 2018-07-24 22:11:25

Gradle提供了对project状态配置监听的接口回调,以方便我们来配置一些Project的配置属性,监听主要分为两大类,一种是通过project(project.beginEvaluate配置前调用,project.afterEvaluate配置后调用)进行 回调,一种是通过gradle(this.gradle.beforeProjectpe配置前调用,this.gradle.afterProject配置后调用)进行回调,作用域也有不同 ,project是只针对当前project实现进行的监听,gradle监听是针对于所有的project而言的。beforeEvaluate方法说的很清楚是配置之前调用,但你要是直接当前build.gradle中使用是肯定不会调用到的,因为Project都没配置好还有他什么事情(也是无奈),afterEvaluates是配置之后调用只要project配置成功均会调用.

3 回复 有任何疑惑可以回复我~
  • qndroid #1
    赞!!!
    回复 有任何疑惑可以回复我~ 2018-07-25 17:53:19
  • Da丶 #2
    同学,这里有个问题,配置前的话 指的是在哪里?
    beforeEvaluate应该在哪里注册监听会被调用到
    回复 有任何疑惑可以回复我~ 2018-08-18 13:14:54
  • 提问者 彩色的沙漠 回复 Da丶 #3
    只在某一个模块的build.gradle配置project.beginEvaluate,无法监听当前的project,你可以在主build.gradle里面配置监听所有子project就可以
    回复 有任何疑惑可以回复我~ 2018-09-19 15:51:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信