尊重他人的劳动成果,转载请标明出处:blog.csdn.net/gengqiquan/… 本文出自:【gengqiquan的博客】
之前RxActivityResult 这个库和RX绑定太深,好多人其实并不喜欢RX的方式,而且引入RX也容易导致开发者乱用,如果不能很好的进行内存管理的话会导致内存泄露。考虑到界面回传的业务场景中对值的aop处理需求并不是必须的,新写了一个库QQResult 将界面回传值和AOP转化分开
调用方式:
QQResult.startActivityWith(MainActivity.this, SecondActivity.class)
.put("key", "笑一个")
.result(new IResult() {
@Override
public void result(Intent intent) {
tv.setText(intent.getStringExtra("msg"));
}
@Override
public void cancel() {
}
});
回调参数内部用代理类进行了封装,提供多个参数方法,可以根据自己的需要来选择,
依旧是利用Fragment作为代理。由于不再使用RX了。就直接采用代理的方式,框架内部主动释放资源。
提供了kotlin的拓展方法
startActivityWith<ThirdActivity>(
"key" to "哭一个", "number" to 100
).result({
Toast.makeText(this@SecondActivity, it.getStringExtra("msg"), Toast.LENGTH_SHORT).show()
})
提供一个转换库来将值转换为RxObservable
QQResult.startActivityWith(MainActivity.this, SecondActivity.class)
.put("key", "笑一个")
.transform(RxResultAdapterFactory.create())
.subscribe(new Subscriber<Intent>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(Intent intent) {
tv.setText(intent.getStringExtra("msg"));
}
});
完整的示例代码、源码及gradle依赖方式请看github.com/gengqiquan/…
有什么建议的可以留言喔
如果我的博客对您有帮助,请留言鼓励下或者点个赞吧!
我建了一个QQ群(群号:121606151),用于大家讨论交流Android技术问题,有兴趣的可以加下,大家一起进步。
今天的文章用代理获取startActivityForResult结果分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15159.html