Rxjava 实现接口回调的功能
来源:互联网 发布:高中数学必修三算法mod 编辑:程序博客网 时间:2024/05/17 09:26
上一遍文章中写了接口回调的模板,这篇文章用rxjava来实现接口回调的功能
(接口回调:http://blog.csdn.net/michael1112/article/details/53573830)
1. 结构
2. gradle
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.0.0' compile 'io.reactivex:rxandroid:1.2.1' compile 'io.reactivex:rxjava:1.1.6'}
3.MainActivity.java
package callback.jdjz.com.rxjava_replace_callback;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import rx.Observable;import rx.Subscriber;import rx.android.schedulers.AndroidSchedulers;import rx.functions.Action1;import rx.schedulers.Schedulers;import android.net.Uri;import rx.functions.Action1;public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.btn_rxjava); final ManagerFields managerFields = new ManagerFields(this); Log.d("MainActivity","Thread Name:"+Thread.currentThread().getName().toString()+ " \n Thread id:"+Thread.currentThread().getId()); final Observable observable = Observable.create(new Observable.OnSubscribe<Long>(){ @Override public void call(Subscriber<? super Long> subscriber) { Long bjtime = TimeUtil.getBJTime(); subscriber.onNext(bjtime); subscriber.onCompleted(); } }).subscribeOn(Schedulers.io()); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { observable.observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<Long>() { @Override public void call(Long bjtime) { managerFields.doSomething(bjtime); } }); } }); }}
3. ManagerFields.java
package callback.jdjz.com.rxjava_replace_callback;import android.content.Context;import android.util.Log;/** * Created by tchl on 2016-12-12. */ public class ManagerFields { Context mContext; public ManagerFields(Context mContext) { this.mContext = mContext; } public void doSomething(long bjTime){ Log.d("ManagerFields","Thread Name:"+Thread.currentThread().getName().toString()+ " \n Thread id:"+Thread.currentThread().getId()); Log.d("ManagerFields","Time :"+bjTime); } }
4, TimeUtil.java
package callback.jdjz.com.rxjava_replace_callback;import android.util.Log;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.Date;/** * Created by tchl on 2016-12-12. */public class TimeUtil { static Long getBJTime() { URL url = null; try { url = new URL("http://www.baidu.com"); } catch (MalformedURLException e) { e.printStackTrace(); } URLConnection uc = null;// 生成连接对象 try { uc = url.openConnection(); } catch (IOException e) { e.printStackTrace(); } try { uc.connect(); // 发出连接 } catch (IOException e) { e.printStackTrace(); } long ld = uc.getDate(); // 取得网站日期时间 Date date = new Date(ld); // 转换为标准时间对象 // 分别取得时间中的小时,分钟和秒,并输出 Log.d("TimeUtil","Thread Name:"+Thread.currentThread().getName().toString()+ " \n Thread id:"+Thread.currentThread().getId()); return date.getTime(); }}
5。 GIT:https://github.com/whtchl/TemplateRxjavaReplaceCallBack
0 0
- Rxjava 实现接口回调的功能
- Rxjava editText 实现searchview的功能
- 实现音频功能的接口
- 实现ModelDriver接口的功能
- 使用RxJava实现定时器功能
- 用 Java 接口实现回调函数的等价功能
- 用 Java 接口实现回调函数的等价功能
- 用Java 接口实现回调函数的等价功能
- 用Java接口实现回调函数的等价功能
- 用Java接口实现回调函数的等价功能
- 需求:iOS自定义protocol与delegate来实现类似java的接口回调功能
- 用JAVA的接口实现callback功能
- 万年历软件各个接口功能的实现
- RxJava的基本实现
- android中使用Rxjava实现倒计时功能
- Simple RxJava 简单的RxJava实现
- 接口回调的实现
- ToggleButton 的功能 实现(同过实现OncheckChangeListener接口)
- 两分钟急速创建一个Github Page【绑定个人域名】
- 练习
- 点击HTML的图片来预览图片
- javascript学习之函数(9)—— 函数 递归
- 使用SIGALRM信号量和sleep冲突的解决办法
- Rxjava 实现接口回调的功能
- python的异步IO(asyncio aiohttp)
- rsync 跨服务器同步
- Eclipse如果不配置Eclipse.ini,即没有指定虚拟机,那么Eclipse默认回去用哪个虚拟机?
- [Google Guava] 3-缓存
- C语言—算法—小猫钓鱼
- 关于java不能精确计算的问题
- jquery控制商品数量加减改变价格,只能输入数字
- 记录:s:property 标签——value属性使用事项