android订阅管理,RXJAVA取消订阅封装-kotlin-Android
因为好几次自己想要在别的项目使用,每次都要重写一遍太麻烦,整理了一下发布到 jcenter 。
利用官方lifecycle库与kotlin语言特性。lifecycle官方 support 27+ 自带。
库代码数少于100行。
用法:
1、添加依赖
implementation 'com.sjianjun:rxutils:1.0.2'
2、代码
提供了3个Disposable的扩展方法这里使用destory演示。
class MainActivity : AppCompatActivity(), AutoDisposeEnhance {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//
Observable.create { }.doOnDispose {
Log.e("dispose", Exception("测试检查调用栈"))
}.subscribe().destroy(lifecycle = lifecycle)
//destroy 方法的参数由 接口 sjj.rx.AutoDisposeEnhance 提供 。
Observable.create { }.doOnDispose {
Log.e("dispose2", Exception("测试检查调用栈"))
}.subscribe().destroy()
}
override fun onResume() {
super.onResume()
}
}
说明
interface AutoDisposeEnhance {
fun Disposable.destroy(onceKey: String? = null) {
destroy(onceKey, getLifecycle())
}
fun Disposable.stop(onceKey: String? = null) {
stop(onceKey, getLifecycle())
}
fun Disposable.pause(onceKey: String? = null) {
pause(onceKey, getLifecycle())
}
fun getLifecycle():Lifecycle
}
主要声明了三个方法扩展destory、stop、pause
参数: oncekey , 如果重复的话会直接取消之前的disposeable 如果为null 则不处理
参数:lifecycle ,被绑定到的声明周期对象,通常由 activity 或者 fragment 提供,也可以自定义。
destory stop pause 三个扩展方法,表示在相应的生命周期 取消订阅。
android订阅管理,RXJAVA取消订阅封装-kotlin-Android相关推荐
- React使用pubsub-js订阅发布和取消订阅
React中父子组件传值有三种形式: 父组件传值给子组件时,通常会使用props传值. 子组件传值给父组件时,通常会子组件中的事件触发一个回调函数,父组件中的对应函数去修改值. 兄弟组件间传值,通常会 ...
- android 固件管理器,刷机精灵(原Android固件管理器桌面版)
详细介绍 刷机精灵的前身是固件管理器桌面版.目前刷机精灵已全面重写,它将是一个更为温馨易用和强大的刷机工具.待近期开发完毕后即可开始发布测试,届时希望各位机友持续给力哦! 刷机精灵是一款运行于PC端的 ...
- QQ邮箱的订阅邮件怎么取消订阅?
如果您需要取消某个栏目的订阅: 进入QQ邮件订阅文件夹: 点击需要退订的订阅邮件: 点击页面最下面的链接"取消这个栏目的订阅": 系统会弹出个新的窗口显示:退订成功. 如果您需要取 ...
- mqtt(2)发布、订阅、订阅确定、取消订阅
PUBLISH – 发布消息 packetId – 报文标识符 不同的MQTT报文所拥有的标识符不同 topicName – 主题名 QoS – 服务质量等级 retainFlag – 保留标志 ...
- android布局管理器模仿qq登录效果,Android程序开发仿新版QQ锁屏下弹窗功能
新版的qq,可以在锁屏下弹窗显示qq消息,正好目前在做的项目也需要这一功能.经过各种试验和资料查找,终于实现,过程不难,但是却有一些地方需要注意. 下面是实现过程. 1.使用Activity,而不是V ...
- 【EventBus】EventBus 源码解析 ( 取消订阅 )
文章目录 一.取消订阅 二.取消订阅 unsubscribeByEventType 方法 一.取消订阅 [EventBus]EventBus 使用示例 ( 最简单的 EventBus 示例 ) 示例中 ...
- shrio 登陆后 还是失效_在 iPhone 上取消订阅后,应用或内容会立即失效吗?
在 iPhone 中,一些应用和服务需要进行订阅,即您需要支付相应的费用以获得应用或服务中内容的访问权限.如果您想要取消订阅某个项目,可以按以下步骤操作: 前往 iPhone "设置&quo ...
- 【MQTT基础篇(五)】发布、订阅和取消订阅
文章目录 发布.订阅和取消订阅 1 PUBLISH – 发布消息 1.1 topicName – 主题名 1.2 QoS – 服务质量等级 1.3 packetId – 报文标识符 1.4 retai ...
- 1.4 发布、订阅和取消订阅
文章目录 PUBLISH – 发布消息 topicName – 主题名 QoS – 服务质量等级 packetId – 报文标识符 retainFlag – 保留标志 Payload – 有效载荷 d ...
最新文章
- postgreSQL怎样创建一个序列号/自动递增的字段
- 成功解决AttributeError: module ‘seaborn‘ has no attribute ‘lvplot‘
- Linux下网络socket编程——实现服务器(select)与多个客户端通信
- C++递归斐波那契数列
- linux bc命令全称,Linux bc 命令
- 设为首页 加入收藏 html,[javascript]js设为首页和加入收藏夹代码
- VS Code Python 将支持 Jupyter Notebook
- 【体系结构】LGWR进程触发机制的理解
- 安卓rom制作教程_【ROM】 MIUI10.3.2.0稳定版 通刷包 安卓9 全面屏手势|小爱同学|游戏模式...
- 华为手机遮挡html页面,手机知识:华为手机老是显示屏幕被遮挡
- python合并视频和音频_Python批量合并处理B站视频
- [2019CCPC秦皇岛] G Game on Chessboard 状压dp
- 抖音账号都是如何出售的
- Android,保存图片并通知系统更新相册
- 腾讯bugly热更新开发
- 诸葛——如何摆脱APP速死症?
- 利用接口实现墨盒纸张打印机
- 软件质量测试的考核标准是什么意思,可量化的软件项目质量考核指标说明
- 最近疯狂的爱上了功放
- 大数据资源整合分析平台_企业大数据管理软件_大数据资源整合管理系统
热门文章
- python线程等待_python3 中 Event.wait 多线程等待
- iview table增加一行减少一行_PQ入门函数:Table.ReplaceValue
- golang python rpc_golang rpc的两种调用方法
- 怎么下载完整的python_怎么下载python并安装
- 在scrapy中parse函数里面xpath的内容打印不出来_如何正确的使用Scrapy ?
- 杭州招聘计算机专业毕业生,毕业季必看!杭州高校毕业生就业情况:这些专业最吃香!这个岗位最缺人!...
- sendmail发送html邮件,尝试使用sendmail发送/发送html电子邮件,但显示电子邮件的源代码...
- 京东极速版如何取消订单 京东极速版怎样取消订单
- 大地win11 32位旗舰版镜像v2021.08
- Win7系统还原声音图标的方法