因为好几次自己想要在别的项目使用,每次都要重写一遍太麻烦,整理了一下发布到 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相关推荐

  1. React使用pubsub-js订阅发布和取消订阅

    React中父子组件传值有三种形式: 父组件传值给子组件时,通常会使用props传值. 子组件传值给父组件时,通常会子组件中的事件触发一个回调函数,父组件中的对应函数去修改值. 兄弟组件间传值,通常会 ...

  2. android 固件管理器,刷机精灵(原Android固件管理器桌面版)

    详细介绍 刷机精灵的前身是固件管理器桌面版.目前刷机精灵已全面重写,它将是一个更为温馨易用和强大的刷机工具.待近期开发完毕后即可开始发布测试,届时希望各位机友持续给力哦! 刷机精灵是一款运行于PC端的 ...

  3. QQ邮箱的订阅邮件怎么取消订阅?

    如果您需要取消某个栏目的订阅: 进入QQ邮件订阅文件夹: 点击需要退订的订阅邮件: 点击页面最下面的链接"取消这个栏目的订阅": 系统会弹出个新的窗口显示:退订成功. 如果您需要取 ...

  4. mqtt(2)发布、订阅、订阅确定、取消订阅

    PUBLISH – 发布消息 packetId – 报文标识符   不同的MQTT报文所拥有的标识符不同 topicName – 主题名 QoS – 服务质量等级 retainFlag – 保留标志  ...

  5. android布局管理器模仿qq登录效果,Android程序开发仿新版QQ锁屏下弹窗功能

    新版的qq,可以在锁屏下弹窗显示qq消息,正好目前在做的项目也需要这一功能.经过各种试验和资料查找,终于实现,过程不难,但是却有一些地方需要注意. 下面是实现过程. 1.使用Activity,而不是V ...

  6. 【EventBus】EventBus 源码解析 ( 取消订阅 )

    文章目录 一.取消订阅 二.取消订阅 unsubscribeByEventType 方法 一.取消订阅 [EventBus]EventBus 使用示例 ( 最简单的 EventBus 示例 ) 示例中 ...

  7. shrio 登陆后 还是失效_在 iPhone 上取消订阅后,应用或内容会立即失效吗?

    在 iPhone 中,一些应用和服务需要进行订阅,即您需要支付相应的费用以获得应用或服务中内容的访问权限.如果您想要取消订阅某个项目,可以按以下步骤操作: 前往 iPhone "设置&quo ...

  8. 【MQTT基础篇(五)】发布、订阅和取消订阅

    文章目录 发布.订阅和取消订阅 1 PUBLISH – 发布消息 1.1 topicName – 主题名 1.2 QoS – 服务质量等级 1.3 packetId – 报文标识符 1.4 retai ...

  9. 1.4 发布、订阅和取消订阅

    文章目录 PUBLISH – 发布消息 topicName – 主题名 QoS – 服务质量等级 packetId – 报文标识符 retainFlag – 保留标志 Payload – 有效载荷 d ...

最新文章

  1. postgreSQL怎样创建一个序列号/自动递增的字段
  2. 成功解决AttributeError: module ‘seaborn‘ has no attribute ‘lvplot‘
  3. Linux下网络socket编程——实现服务器(select)与多个客户端通信
  4. C++递归斐波那契数列
  5. linux bc命令全称,Linux bc 命令
  6. 设为首页 加入收藏 html,[javascript]js设为首页和加入收藏夹代码
  7. VS Code Python 将支持 Jupyter Notebook
  8. 【体系结构】LGWR进程触发机制的理解
  9. 安卓rom制作教程_【ROM】 MIUI10.3.2.0稳定版 通刷包 安卓9 全面屏手势|小爱同学|游戏模式...
  10. 华为手机遮挡html页面,手机知识:华为手机老是显示屏幕被遮挡
  11. python合并视频和音频_Python批量合并处理B站视频
  12. [2019CCPC秦皇岛] G Game on Chessboard 状压dp
  13. 抖音账号都是如何出售的
  14. Android,保存图片并通知系统更新相册
  15. 腾讯bugly热更新开发
  16. 诸葛——如何摆脱APP速死症?
  17. 利用接口实现墨盒纸张打印机
  18. 软件质量测试的考核标准是什么意思,可量化的软件项目质量考核指标说明
  19. 最近疯狂的爱上了功放
  20. 大数据资源整合分析平台_企业大数据管理软件_大数据资源整合管理系统

热门文章

  1. python线程等待_python3 中 Event.wait 多线程等待
  2. iview table增加一行减少一行_PQ入门函数:Table.ReplaceValue
  3. golang python rpc_golang rpc的两种调用方法
  4. 怎么下载完整的python_怎么下载python并安装
  5. 在scrapy中parse函数里面xpath的内容打印不出来_如何正确的使用Scrapy ?
  6. 杭州招聘计算机专业毕业生,毕业季必看!杭州高校毕业生就业情况:这些专业最吃香!这个岗位最缺人!...
  7. sendmail发送html邮件,尝试使用sendmail发送/发送html电子邮件,但显示电子邮件的源代码...
  8. 京东极速版如何取消订单 京东极速版怎样取消订单
  9. 大地win11 32位旗舰版镜像v2021.08
  10. Win7系统还原声音图标的方法