首页 > setResult()方法调用

setResult()方法调用

小弟在做一个sdk,商户使用startActivityForResult()方法来启动我的sdk中的Activity(A),然后会进行一系列操作,跳转至Activity B、C、D等,中途可能使用finish()方法结束某个Activity,最后需要在某个Activity(不是A)中点击界面上的按钮将信息通过setResult()返回给商户,请问有办法实现吗?

目前已知的方案是,每次都通过startActivityForResult()方法来启动每一个Activity,来进行信息传递,其实不太想使用这种方案,不知道有没有其他的方案可以解决?


用一个类来进行数据保存,这样子数据会比较好操作和传递一点


你自己写一个activity基类,里面写一个activity之间传输信息的方法,然后你就把sdk里面的activity基类继承你的基类。如果你不需要跟其他的activity进行交互,那你直接在sdk的activity基类上写传输信息的方法


建议LZ在从B跳转到C,D的时候,对intent添加FLAG_ACTIVITY_FORWARD_RESULT这个flag,这样A就能收到B(startActivityForResult),C(startActivity),D(startActivity)中任何一个Activity的result了


方法就是每个Activity都用startActivityForResult来启动,虽然这样代码量会有所增加,但是这样是耦合较少的实现。也有其它的实现方式,比如共享一个单例对象到Application里,通过这个对象进行记录。不过这样做和使用startActivityForResult区别也不大。

【热门文章】
【热门文章】