您当前的位置: 首页 >  android

韩曙亮

暂无认证

  • 1浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )

韩曙亮 发布时间:2021-09-22 10:02:37 ,浏览量:1

文章目录
  • 前言
  • 一、获取 Activity 中的所有方法
  • 二、获取方法上的注解
  • 三、获取注解上的注解
  • 四、通过注解属性获取相关事件信息

前言

Android 依赖注入的核心就是通过反射获取 类 / 方法 / 字段 上的注解 , 以及注解属性 ; 在 Activity 基类中 , 获取该注解 以及 注解属性 , 进行相关操作 ;

在博客 【IOC 控制反转】Android 事件依赖注入 ( 事件三要素 | 修饰注解的注解 | 事件依赖注入步骤 ) 中 , 定义了 2 2 2 个注解 ,

  • 第一个是方法上的注解 , 用于修饰方法 ;
  • 第二个是修饰注解的注解 , 该注解用于配置注入的方法 ( 事件监听方法 | 监听器类型 | 监听器回调方法 ) ;

事件依赖注入比较复杂 , 涉及到动态代理 , 本博客分析 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入代码示例 ) 事件依赖注入的详细步骤 ;

本博客的核心是 : 使用动态代理 , 创建 View.OnClickListenerView.OnLongClickListenerView.onTouchListener 等接口的动态代理类 ; 拦截相应的 onClick , onLongClick , onTouch 方法 , 执行自己的方法 , 其它方法正常执行 ;

一、获取 Activity 中的所有方法

通过反射获取 Activity 类 , 然后调用 Class 的 getDeclaredMethods 方法 , 获取 Activity 中的所有方法 ;

// 获取 Class 字节码对象
Class clazz = activity.getClass();
// 获取所有方法
Method[] methods = clazz.getDeclaredMethods();
二、获取方法上的注解

获取方法的所有注解 , 获取的是 @OnClick({R.id.textView}) // 事件注入 注解 ;

调用 Method 方法的 getDeclaredAnnotations 方法 , 获取方法上的注解数组 ;

        // 循环遍历类的方法
        for (int i = 0; i             
关注
打赏
1663594092
查看更多评论
0.0526s