- 从根上理解RXJava,深入RxJava 的适用场景和使用方式(Retrofit、RxBinding、RxBus)
Kepler_II
前言我从去年开始使用RxJava,到现在一年多了。今年加入了Flipboard后,看到Flipboard的Android项目也在使用RxJava,并且使用的场景越来越多。而最近这几个月,我也发现国内越来越多的人开始提及RxJava。有人说『RxJava真是太好用了』,有人说『RxJava真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问:RxJava到底是什么?鉴于RxJava目
- 组件间通信方案(六):自动感知生命周期事件总线LiveDataBus
bug喵喵
一、LiveDataLiveData是17年GoogleIO大会上提出来的一个新技术。相对于通信总线类型的框架EventBus和RxBus来说,它更简单,更简洁、更解耦。它具有以下优点:UI和实时数据保持一致因为LiveData采用的是观察者模式,这样一来就可以再数据发生改变时获得通知,更新UI避免内存泄漏观察者被绑定到组件的生命周期上,当被绑定的组件销毁(Destory)时,观察者会立刻自动清理
- 经验分享
weixin_34367845
移动开发json测试
1.流行技术框架:MVP(框架)+Rxjava(响应式编程)+Retrofit(网络请求封装)常用三方库:Rxbus:事件订阅管理ButterKnife:view注入框架(setting设置m开头)fastjson/Gson:Json处理工具glide/Fresco:图片加载组件PictureSelector:图片选择器zxing:二维码扫描Lifecycle:生命周期管理组件tinker:热修复
- Android 用LiveDataBus替代RxBus、EvenBus
seven2729
androidLiveDataBus替代RxBusEvenBus
最近使用Rxbus发现升级到33版本的时候,会出现报黄色,看着很不舒服。然后就想着找找替换的方案。查找了蛮多资料。发现版本大部分都是大同小异。就如下的链接的三个版本。第一个就是简单实现类型。也是之前Rxbus早期的原型。再就是后面我用来改良的版本。但是跟之前用的Rxbus又有点不一样。因为原先都是习惯了的懒人写法。所以就用当前的类名(XXX.getClass().getSimpleName())来
- Corelibs-master框架使用说明(二)
鬼子来le
参考:Android架构探索RxBus相信大家也都用过EventBus,Otto等开源库,利用RxJava也能很简单的实现类似功能而无需引入其他库.发送:RxBus.getDefault().send(newObject,EVENT_STEP_CHANGE);接收:RxBus.getDefault().toObservable(Object.class,EVENT_STEP_CHANGE).com
- RxBus实现过程详解
果果人8023
1,什么是RxBusrxbus不是什么框架,它只是一个通过rxjava实现eventbus的类在android中使用时,它还还可以引用AndroidLifecycle来解决内存溢出问题它是观察者模式的一种应用,方便了我们在不同页面与不同线程间的通信2,代码RxBus的代码实现publicclassRxBus{privatevolatilestaticRxBusmDefaultInstance;//
- 干掉RxJava系列--2. 手写FlowBus替代RxBus/EventBus/LiveDataBus
今阳说
LiveData的不足LiveData是一个专用于Android的具备自主生命周期感知能力的可观察的数据存储器类,被有意简化设计,这使得开发者很容易上手,但其不足有如下两点:LiveData只能在主线程更新数据(postValue底层也是切换到主线程的,而且可能会有丢数据的问题);LiveData操作符不够强大,对于较为复杂的交互数据流场景,建议使用RxJava或Flow;LiveData与And
- 关于LiveData粘性事件所带来问题的解决方案
慕尼黑凌晨四点
参考文章KunMinX:重学安卓:LiveData数据倒灌背景缘由全貌独家解析Android开发者:[译]在SnackBar,Navigation和其他事件中使用LiveData(SingleLiveEvent案例)美团技术团队:Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus我们之前研究LiveData时候有讨论到LiveData天生就是支持“粘性”事件
- RxBus1.x的简单使用
々志尚
RxJava目前已经很火了,如果你尚未了解请看这里。对于RxJava这里不多做介绍。RxBus并不是一个库,而是一种模式。相信大多数开发者都使用过EventBus,作为事件总线通信库,如果你的项目已经加入RxJava和EventBus,不妨用RxBus代替EventBus,以减少库的依赖。一、添加RxJava和RxAndroid依赖//RxJavaandRxAndroidcompile'io.re
- 把 LiveData 用于事件传递那些坑
Android高级工程师
1、为什么要把LiveData当作事件传递用利用观察者模式打造的事件总线的优点不必多说(当然也有很多缺点),如EventBus和RxBus用的好的话能起到很好的解耦作用,使整个程序架构更加清晰,不至于到处传递各种Callback。但是他们都缺少了对View层(Activity、Fragment等)的生命周期的感知能力,需要在生命周期结束时手动解除观察者,手动管理生命周期十分繁琐且很容易出错。而Go
- Activity,Fragment,Service之间通信
jj_huang
虽然我们很多时候都在用eventBus/Rxbus,但是基础的一些通信我们也需要了解。Activity与Activity:1:Intent/Bundle;2:类静态变量;3:全部变量;Activity传给Fragment:1:Bunlde;方法Fragment.setArguments(bundle);之后在Fragment中调用getArguments();2:直接在Activity中定义;在该
- RxJava实现的EventBus-RxBus
塞上牧羊空许约
使用RxJava2实现RxBus当我们使用RxJava2实现EventBus模式时,我们称其为RxBus.注意:这仅作为一个例子。那么,就让我们来看看如何使用RxJava2实现RxBus吧首先,你得了解RxJava中有关subject的知识,为此你可以参考一下我之前有关RxJavaSubject的文章。了解RxJavaSubject之后,我们便可以创建RxBus啦。publicclassRxBus
- 手写简单的EventBus
若无初见
EventBus是一种用于Android的事件发布-订阅总线框架,由GreenRobot开发,Gihub地址是:EventBus。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。关于事件-发布框架后来还出现了类似的Rxbus、LiveDataBus。这里就不做介绍。EventBus出现也有些年头了,目前的最新版本是3.2.0。
- LiveDataBus替代RxBus、EventBus
cain07
https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651748475&idx=4&sn=8feb14dd49ce79726ecf12eb6c243740&chksm=bd12a1368a652820df7c556182d3494d84ae38d4aee4e84c48c227aa5083ebf2b1a0150cf1b5&scene=38#w
- Kotlin - 协程 - Flow
总有人想捧红我
在Kotlin普及之前,RxJava无疑是Android开发领域中最受欢迎的响应式编程的三方库,而RxJava在我们日常的Android开发应用的最多的场景就是配合Retrofit进行网络请求和类似EventBus的事件订阅(RxBus)。但是到了2017年,随着LiveData刚一面世,就受到了很大的关注,LiveData是一个以观察者模式为核心,让界面对变量进行订阅,从而实现自动通知刷新的组件
- Android项目必备第三方框架
英勇的骑士_d175
常用必备1.【屏幕适配】今日头条屏幕适配方案终极版,一个极低成本的Android屏幕适配方案.2.【换肤、UI、工具】Tencent/QMUI_Android:提高AndroidUI开发效率的UI库(github.com)3.【RxBus消息传递】AndroidKnife/RxBus:EventBusByRxJava.(github.com)4.【AgentWebwebView封装使用】Justs
- RxBus(2.0)
24K男
基于RxJava2.0实现。代码为Kotlin。packagecore.zs.rxbusimportio.reactivex.Flowableimportio.reactivex.disposables.CompositeDisposableimportio.reactivex.disposables.Disposableimportio.reactivex.processors.Flowable
- Rxbus讲解
Simplelove_f033
RxBus简介什么是RxBus?RxBus名字看起来像一个库,但它并不是一个库,而是一种模式,它的思想是使用RxJava来实现了EventBus,而让你不再需要使用Otto或者GreenRobot的EventBus。------给Android开发者的RxJava详解RxBus2.x就是基于RxJava2.x封装实现的类。为什么要使用RxBus?如上所说,我们可以通过封装RxJava实现Event
- 事件总线方案实践
杨充211
liveData实现事件总线目录介绍01.EventBus使用原理02.RxBus使用原理03.为何使用liveData04.LiveDataBus的组成05.LiveDataBus原理图06.简单的实现案例代码07.遇到的问题和分析思路08.使用反射解决遇到问题09.使用postValue的bug10.如何发送延迟事件消息11.如何发送轮训延迟事件12.避免类型转换异常问题13.如何实现生命周期
- Corelibs-master框架使用说明(一)
鬼子来le
主体框架地址:Android架构探索(偶尔连接访问不出来)介绍引入MVP模式.网络请求Retrofit.引入RxJava,RxAndroid.下拉刷新与自动加载Ultra-PullToRefresh.引入ButterKnife.引入RxBus事件驱动.其他常用工具库.新的模式最重要的就是引入了MVP以及Retrofit+Rxjava.至于为何会引入这些模式与库后续会有篇幅一一介绍.目前整个架构就像
- 万人收藏!关于Android EventBus源码解析,看这一篇就够了!
字节跳不动
写在前面:如果你看到这篇文章,希望你能够自己对照着源码走一遍,直接反射或者使用索引都会详细分析使用的!EventBus优点和特性也许你有个疑问:市面上有很多事件传递框架为何选择EventBus,而不是Otto,Rxbus等,相比较他们都可以满足日常开发需求,只是后两者更新基本停滞,而EventBus还在正常更新维护,选择接入人数也是最多的,同时功能也是最全的,如果你选择了使用该框架,自然了解源码的
- EventBus最全源码解析
唯爱_0834
寄语:如果你看到这篇文章,希望你能够自己对照着源码走一遍,直接反射或者使用索引都会详细分析使用的!EventBus优点和特性也许你有个疑问:市面上有很多事件传递框架为何选择EventBus,而不是Otto,Rxbus等,相比较他们都可以满足日常开发需求,只是后两者更新基本停滞,而EventBus还在正常更新维护,选择接入人数也是最多的,同时功能也是最全的,如果你选择了使用该框架,自然了解源码的运行
- mvp android 官方demo,轻量级的Android MVP快速开发框架
SydneyStella
mvpandroid官方demo
Demo效果XDroidMvp是XDroidAndroid快速开发框架的MVP版本,其使用方式类似于XDroid,大部分源码也来自XDroid。XDroidMvp主要会有这些特性:无需写Contract!无需写Present接口!无需写View接口!新增:Mvp实现RxJava&RxAndroid权限适配RxPermission事件订阅默认采用RxBus网络交互:Retrofit+rxHttps统
- Jetpack-LiveData
Showdy
LiveData实现生命周期感知及避免内存泄漏的原因Android官方架构组件LiveData:观察者模式领域二三事LiveData的粘性事件用LiveDataBus替代RxBus、EventBus——Android消息总线的演进之路Android使用LiveData实现EventBus【AAC系列三】深入理解架构组件:LiveData
- 集成MVVM,模块解耦,RxJava,Okhttp,Retrofit,ARouter组件化开发的基础包,并添加的一些基础工具类以备使用
窝窝头也行吧
AndroidMVVMRxJavaretrofitOkhttpARouter
注:该基础项目可用于多人协作开发,配置统一,并且有相关示例,根据个人需要灵活删减目录一.框架说明21.添加组件方式2二.注意事项21.RxBus使用规定22.获取图片验证码(图片流)23.请求权限(统一使用RxPermissions)34.文件下载35.图片压缩46.通用ShowDialog47.重点注意(不要修改组件包名)58.调用定位功能(高德)59.接口示例与要求510.XML中常用转义字符
- Kotlin总结
Android开发技术总结
kotlin完成的项目项目是基于kotlin写的:Android端:1.使用组件化模块开发基于阿里ARouter封装的组件路由调用项目框架与用到的技术:ARouter+Retrofit+Rxjava+Okhttp+Dagger2+Rxbus+Anko+RxKotlin+RxAndroid+Glide数据库使用了第三方的:GreenDao2.项目中图片上传使用了七牛云存储,封装了微信支付支付宝支付银
- 【转】反思 | 事件总线的局限性,组件化开发流程中通信机制的设计与实现
littlefogcat
版权声明:本文为CSDN博主「却把清梅嗅」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/mq2553299/article/details/112724257阅读原文1阅读原文2背景诸如EventBus\RxBus\LiveDataBus的事件总线库在业内正遭滥用。诚然,事件总线看起来小而美,但随着业务复杂度上升
- EventBus 源码分析与总结
afree_
基于V3.1.1EventBus官方地址EventBusGitHub地址EventBus是什么概念:EventBus是一个Android事件发布/订阅框架同类:Otto、RxBus出品方:greenrobotEventBus优缺点优点通过消息总线形式,解耦发布者和订阅者,简化Android事件传递,从而代替Android传统的Intent、Handler、Broadcast方式或接口回调支持注解配
- RxBus2.x的全面详解
々志尚
前言在AndroidEventBus3.x的使用详解一文中我们全面讲解了使用EvenBus3.x解决进程/界面通信。本文将介绍另一个东西—>使用RxBus来实现进程/界面通信。阅读本文,你需要提前了解RxJava,可以查看:给Android开发者的RxJava详解Android响应式编程框架—RxJava&RxAndroid2.0使用笔记RxBus简介什么是RxBus?RxBus名字看起来像一个库
- Kotlin - 协程 - Flow
酷酷的lingyu
androidkotlin
在Kotlin普及之前,RxJava无疑是Android开发领域中最受欢迎的响应式编程的三方库,而RxJava在我们日常的Android开发应用的最多的场景就是配合Retrofit进行网络请求和类似EventBus的事件订阅(RxBus)。但是到了2017年,随着LiveData刚一面世,就受到了很大的关注,LiveData是一个以观察者模式为核心,让界面对变量进行订阅,从而实现自动通知刷新的组件
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。