用代理获取startActivityForResult结果

Posted gengqiquan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用代理获取startActivityForResult结果相关的知识,希望对你有一定的参考价值。

尊重他人的劳动成果,转载请标明出处:https://blog.csdn.net/gengqiquan/article/details/84062213, 本文出自:【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依赖方式请看https://github.com/gengqiquan/QQResult

有什么建议的可以留言喔

如果我的博客对您有帮助,请留言鼓励下或者点个赞吧!

我建了一个QQ群(群号:121606151),用于大家讨论交流android技术问题,有兴趣的可以加下,大家一起进步。

以上是关于用代理获取startActivityForResult结果的主要内容,如果未能解决你的问题,请参考以下文章

告别onActivityResult ,用代理实现Rx方式获取startActivityForResult结果

告别onActivityResult ,用代理实现Rx方式获取startActivityForResult结果

用代理获取startActivityForResult结果

rails中使用grape做api,生产环境用nginx做代理,获取真实的ip

nginx服务器代理获取接口数据

nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP