android方法注解 点击,一款基于AOP的Android注解框架

一、简介

当下Java后端的SpringBoot微效劳框架大火,缘由离不开注解的运用,其简单易配置的注解方式使得更多的社区为其编写适用于SpringBoot的框架,也就是注解逐步取代了传统的xml配置方式。那么注解在Android中也同样的得到了升华,著名的框架有ButterKnife、Dagger2、Retrofit等等。今天带来一款Android中比拟适用的注解框架AopArms,其用法简单,里面编写了Android开发中常用的一套注解,如日志、拦截(登录)、异步处置、缓存、SP、延迟操作、定时任务、重试机制、try-catch平安机制、过滤频繁点击等,后续还会有更多更强大的注解功用参加。

本篇主要内容解说在Android中的根本用法,关于AOP在Android中的理论请参考另外一篇Android开发之AOP编程。a1e9e24750e989eb7d1aefd766c9d538.png

二、引入方式

1、在主工程中添加依赖

//引入aspectjx插件

applyplugin:’android-aspectjx’

dependencies{

implementation’cn.com.superLei:aop-arms:1.0.1′

}

2、项目跟目录的gradle脚本中参加

buildscript{

repositories{

mavenCentral()

}

dependencies{

//该库基于沪江aspect插件库

classpath’com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4′

}

}

3、在Application中初始化

AopArms.init(this);

三、根本运用

1、缓存篇(可缓存恣意类型)

1、插入缓存

@Cache(key=”userList”)

privateArrayListinitData(){

ArrayListlist=newArrayList<>();

for(inti=0;i<5;i++){

Useruser=newUser();

user.setName(“艾神一不当心:”+i);

user.setPassword(“密码:”+i);

list.add(user);

}

returnlist;

}

2、获取缓存

privateArrayListgetUser(){

returnACache.get(this).getAsList(“userList”,User.class);

}

3、移除缓存

@CacheEvict(key=”userList”)

publicvoidremoveUser(){

Log.e(TAG,”removeUser:>>>>”);

}

2、SharedPreferences篇(可保管对象)

1、保管key到sp

@Prefs(key=”article”)

privateArticleinitArticle(){

Articlearticle=newArticle();

article.author=”jerry”;

article.title=”helloandroid”;

article.createDate=”2019-05-31″;

article.content=”thisisatestdemo”;

returnarticle;

}

2、从sp中移除key

@PrefsEvict(key=”article”)

publicvoidremoveArticle(){

Log.e(TAG,”removeArticle:>>>>”);

}

3、异步篇

@Async

publicvoidasyn(){

Log.e(TAG,”useAync:”+Thread.currentThread().getName());

}

4、try-catch平安机制篇

//自动帮你try-catch允许你定义回调办法

@Safe(callBack=”throwMethod”)

publicvoidsafe(){

Stringstr=null;

str.toString();

}

//自定义回调办法(留意要和callBack的值坚持分歧)

privatevoidthrowMethod(Throwablethrowable){

Log.e(TAG,”throwMethod:>>>>>”+throwable.toString());

}

5、重试机制篇

/**

*@paramcount重试次数

*@paramdelay每次重试的距离

*@paramasyn能否异步执行

*@paramretryCallback自定义重试结果回调

*@return当前办法能否执行胜利

*/

@Retry(count=3,delay=1000,asyn=true,retryCallback=”retryCallback”)

publicbooleanretry(){

Log.e(TAG,”retryDo:>>>>>>”+Thread.currentThread().getName());

returnfalse;

}

privatevoidretryCallback(booleanresult){

Log.e(TAG,”retryCallback:>>>>”+result);

}

6、定时任务篇

/**

*@paraminterval初始化延迟

*@paraminterval时间距离

*@paramtimeUnit时间单位

*@paramcount执行次数

*@paramtaskExpiredCallback定时任务到期回调

*/

@Scheduled(interval=1000L,count=10,taskExpiredCallback=”taskExpiredCallback”)

publicvoidscheduled(){

Log.e(TAG,”scheduled:>>>>”);

}

privatevoidtaskExpiredCallback(){

Log.e(TAG,”taskExpiredCallback:>>>>”);

}

7、延迟任务篇

//开启延迟任务(10s后执行该办法)

@Delay(key=”test”,delay=10000L)

publicvoiddelay(){

Log.e(TAG,”delay:>>>>>”);

}

//移除延迟任务

@DelayAway(key=”test”)

publicvoidcancelDelay(){

Log.e(TAG,”cancelDelay:>>>>”);

}

8、过滤频繁点击

//value默许500ms

@SingleClick(value=2000L)

privatevoidonclick(){

Log.e(TAG,”onclick:>>>>”);

}

9、拦截篇(如登录)

1、在需求停止拦截的办法添加注解

@Intercept(“login_intercept”)

publicvoidloginIntercept(){

Log.e(TAG,”intercept:已登陆>>>>”);

}

2、(倡议,统一处置)在Application中停止停止监听拦截回调

publicclassMyApplicationextendsApplication{

privatestaticfinalStringTAG=”MyApplication”;

privatestaticMyApplicationmApplication;

@Override

publicvoidonCreate(){

super.onCreate();

mApplication=this;

AopArms.init(this);

AopArms.setInterceptor(newInterceptor(){

@Override

publicbooleanintercept(Stringkey,StringmethodName)throwsThrowable{

Log.e(TAG,”interceptmethodName:>>>>>”+methodName);

if(“login_intercept”.equals(key)){

StringuserId=SPUtils.get(mApplication,”userId”,””);

if(TextUtils.isEmpty(userId)){

Toast.makeText(mApplication,”您还没有登录”,Toast.LENGTH_SHORT).show();

returntrue;//代表拦截

}

}

returnfalse;//放行

}

});

}

}

以上是库的一些常用的根本用法,后续会添加更多的注解来简化Android开发,欢送前来issues来发问或者提出你以为所需求的更多注解需求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值