@AfterXXX 调用顺序

原文地址:
https://github.com/excilys/androidannotations/wiki/%40AfterXXX-call-order

用@AfterXXX标注的方法调用次序

同一个类中的同一个注释的方法调用顺序不能保证,你不应该依赖于它。如果你想多种方法按照可靠的顺序被被调用,你应该只创建创建一个注解的方法,并用它来调用它们所需顺序的其他方法。

@AfterInject
protected void callInOrder() {
    methodA();
    methodB();
    methodC();
}

private void methodA() {
    // your code
}

private void methodB() {
    // your code
}

private void methodC() {
    // your code
}

如果你要处理的父/子类,你可以试试这个。

/**
*Parent
*/
@EActivity
public class Parent extends Activity {

    @AfterViews
    protected void afterViews() {
        // do here something related to parent
    }
}
/**
*Child
*/
@EActivity
public class Child extends Parent {

    @Override // no @AfterViews !
    protected void afterViews() {
        super.afterViews(); // does something related to parent
        // do here something related to child
    }
}

初始化调用顺序(初始化后)

  1. @AfterExtras
  2. @AfterInject
  3. @AfterViews

注意:@AfterExtras注释方法被调用时,除和视图无关的注入变量都会被初始化并赋值。因此在标注@Bean 的类中使用变量值是安全的。一些视图(view)只能在@AfterViews 注释方法被调用是才能安全使用。

后续调用

  • @AfterExtras方法会在每个新的Intent Activity启动时调用。
  • @AfterViews将在每次的setContentView()方法被执行后被调用。 (Activity专用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值