android 配置aspect_AOP面向切面编程在Android中的使用

GitHub地址(欢迎下载完整Demo)

项目需求描述

我想类似于这样的个人中心的界面,大家都不会陌生吧。那几个有箭头的地方都是可以点击进行页面跳转的,但是需要先判断用户是否登录,如果已经登录,则正常跳转,如果没有登录,则跳转到登录页面先登录,但凡是有注册,登录的APP,这样的操作,大家应该都很熟悉吧。一般情况下,我们的逻辑是这样的…

/**

* 跳转到我的关注页面*/

public voidtoMyAttention() {//判断当前用户是否登录

if(LoginHelper.isLogin(this)) {//如果登录才跳转,进入我的关注页面

Intent intent = new Intent(this, WaitReceivingActivity.class);

startActivity(intent);

}else{//跳转到登录页面,先登录

Intent intent = new Intent(this, LoginActivity.class);

startActivity(intent);

}

}

重复的体力劳动,想想都可怕。而且类似的还有网络判断,权限管理,Log日志的统一管理这样的问题。那么,我们也没有更优雅的方式来解决这一类的问题呢,答案是有的。

先给出我解决了上述问题之后的代码

/**

* 跳转到我的关注页面*/@CheckLoginpublic voidtoMyAttention() {

Intent intent= new Intent(this, WaitReceivingActivity.class);

startActivity(intent);

}

AspectJ

AspectJ实际上是对AOP编程思想的一个实践,AOP虽然是一种思想,但就好像OOP中的Java一样,一些先行者也开发了一套语言来支持AOP。目前用得比较火的就是AspectJ了,它是一种几乎和Java完全一样的语言,而且完全兼容Java(AspectJ应该就是一种扩展Java,但它不是像Groovy那样的拓展。)。当然,除了使用AspectJ特殊的语言外,AspectJ还支持原生的Java,只要加上对应的AspectJ注解就好。所以,使用AspectJ有两种方法:

- 完全使用AspectJ的语言。这语言一点也不难,和Java几乎一样,也能在AspectJ中调用Java的任何类库。AspectJ只是多了一些关键词罢了。

- 或者使用纯Java语言开发,然后使用AspectJ注解,简称@AspectJ。

基础概念

- Aspect 切面:切面是切入点和通知的集合。

PointCut 切入点:切入点是指那些通过使用一些特定的表达式过滤出来的想要切入Advice的连接点。

Advice 通知:通知是向切点中注入的代码实现方法。</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值