Android线程创建aop,【android安卓】一个注解搞定线程切换,基于AOP的线程转换框架...
最简单的使用方法:
模拟进度展示:
@RunOnIOThread
public void progress() {
for (int i = 0; i <= 100; i++) {
showProgress(i);
SystemClock.sleep(1000);
}
}
@RunOnUIThread
private void showProgress(int progress) {
mTvTest.setText(progress + "%");
}
框架提供3种线程注解:
@RunOnUIThread (被注解的方法在UI线程执行)
@RunOnIOThread (被注解的方法在子线程执行,适合耗时操作)
@RunOnBackGround (被注解的方法在后台线程执行,所有被注解的方法都在同一个线程,队列执行,不适合耗时操作)
关于子线程在activity和fragment中进行耗时操作导致的内存泄漏,本框架提供解决办法:
在耗时操作的循环体中加入以下代码:
if (Thread.currentThread().isInterrupted()) return;
如果是采用休眠的耗时操作,请在捕获InterruptedException异常后跳出循环
注意:
只在注解 @RunOnIOThread 的子线程中有效,利用了安卓新特性Lifecycle
其它2个注解不适合做耗时操作,不做处理
小贴士
在 app 的 build 依赖里再加一个依赖:
implementation 'com.github.jarryleo:MagicPermission:v1.0'
即可使用安卓纯注解动态权限申请框架
在需要权限的方法上打上注解,全自动处理动态权限各种问题:
自动处理用户同意/拒绝操作,自动处理用户拒绝并勾选不在提示后的 弹框提示,并跳转到设置界面引导用户开启权限
用户在设置界面返回后自动处理 设置界面操作的结果,
兼容国产rom
使用示例:
单个权限申请
@PermissionRequest(Manifest.permission.CAMERA)
public void testPermission() {
//执行权限申请通过后的业务逻辑
}
多个权限同时申请
@PermissionRequest({Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE})
public void testPermission() {
//执行权限申请通过后的业务逻辑
}
注意:只能在Fragment(v4)和FragmentActivity 以及它们的子类 中使用
如果觉得好用的话,给个star吧,欢迎留言
Android线程创建aop,【android安卓】一个注解搞定线程切换,基于AOP的线程转换框架...相关推荐
- 一个注解搞定接口防刷!还有谁不会?
点击关注公众号,Java干货及时送达 说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作, 首先是写一个注解类: ...
- 一个注解搞定 SpringBoot 接口防刷,还有谁不会?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:CS打赢你 blog.csdn.net/weixin ...
- 数据翻译的代码辅助插件,一个注解搞定,减少30%SQL代码量
一.开源项目简介 Easy Trans是一款用于做数据翻译的代码辅助插件,利用MyBatis Plus/JPA/BeetlSQL 等ORM框架的能力自动查表,让开发者可以快速的把ID/字典码 翻译为前 ...
- Java后端:一个注解搞定 Spring Boot 日志!
此组件解决的问题是: 「谁」在「什么时间」对「什么」做了「什么事」 本组件目前针对 Spring-boot 做了 Autoconfig,如果是 SpringMVC,也可自己在 xml 初始化 bean ...
- 封装一个类搞定90%安卓客户端与服务器端交互
本实例封装了一个处理安卓客户端与服务器端交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器端交互json数据. 2.Get方式与服务器端交互数据. 3.Po ...
- Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅
原文:Android零基础入门第7节:搞定Android模拟器,开启甜蜜之旅 在前几期中总结分享了Android的前世今生.Android 系统架构和应用组件那些事.带你一起来聊一聊Android开发 ...
- php调用jssdk转发_php一个文件搞定微信jssdk配置
php一个文件搞定微信jssdk配置: 包括缓存,包括https通讯,获取微信access_token,签名什么的都有.但是防范性编程做得比较少,商业用的话,需要完善下代码. 使用姿势 ^ajax(C ...
- php微信sdk接口文档,php一个文件搞定微信jssdk配置
学习PHP的小伙伴在处理微信jssdk配置的时候可能会遇到一些问题.以下是百分网小编精心为大家整理的php一个文件搞定微信jssdk配置,希望对大家有所帮助!更多内容请关注应届毕业生网! 包括缓存,包 ...
- 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定
1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...
最新文章
- 视频直播/远程会议中的AI关键技术探索应用
- 聊聊gcc参数中的-I, -L和-l
- ABB机器人Whlie循环指令
- AD转换及其相关背景知识
- python正弦函数_Python之正弦曲线实现方法分析
- C#实现在图片上添加文字和二维码
- python彩色螺旋线_python绘制彩色螺旋线
- 数据开源 | 跨境电商场景中日平行语料1000
- sodo与visodo的日常使用
- 吉林大学老师蓝牙点名被赞“有创意”(图)
- markdown插入图片的几个办法
- 一个机器人位于m x n网格的左上角达到网格的右下角,有多少条不同的路径?
- 20分 html文件是,HTML语言试卷(A)
- Simulink —— Toggle Switch的使用
- IOT闸机控制系统,远程控制
- 第一章 动态规划 状态压缩DP
- 车辆跟踪设备中移远模块SMTP功能介绍
- 网络工程毕业设计 SSM网上租车系统(源码+论文)
- 理解MiniGUI消息循环和窗口过程
- CSS滤镜及渐变nbsp;(filter样式表属性)
热门文章
- sass import 小记
- 剑指Offer(java版):字符串的排列
- 云监控中inode使用率监控具体作用是什么
- jetty9优化的两处地方
- java.io.IOException: Bad connect ack with firstBad
- Windows Communication Foundation_1 overview
- 关于内容管理系统IWMS的几个问题
- pb 导出文件 日期格式_「案例分享」ERP系统导出数据注意事项
- 培训协议与服务器有没有要求,上面说的是提供专业培训且规定了服务器和培训费以及违约金的问题。试用期辞职单位有没有权利追究违约金呢?- 法律快车法律咨询...
- python发邮件图片太长显示不出来_Python电子邮件图像太长,无法显示,为什么Python在发送多图表电子邮件时只显示第一个图像?,python,发邮件,图片,不,出来,第一张...