0
点赞
收藏
分享

微信扫一扫

android 什么时候用总线模式合适?


尝试过不同的手机,开始的时候用总线模式时在不同页面之间。比如activity注销,想着用总线模式,全部destroy掉。

public class BaseActivity extends Activity{
@Subscribe
public void destroyAll(DestroyAllActivityEvent event){
finish();
}
}

结果是有的手机可以有的不可以。后来我思考了原因,明白了。总线模式不适合不同activity之间的互相更新。

因为前一个activity存在被回收的可能,一旦回收,就收不到通知,无法更新了!

onDestroy后会调用onDetachView,我试图在onDetachView里停止订阅EventBus.getDefault().unregister(this);也不行。这种方式成功率不能保证。所以还是用startActivityForResult+onActivityResult的方式更好。

那么这种方式就有限制了,放在哪里好呢?

回调
网络请求之后的回调,可以直接用EventBus,更加方便。

fragment和activity之间的通信
省的写listener了。

子界面,如viewpager里面有view,或者是dialog数据回传
这里用很好,因为直接写要写监听会比较麻烦。

service通信
service创建后,必须要用binder的getService才能拿到对象,里面的方法调用麻烦,用这种方式,可以很容易的实现activity和service数据传输。

broadcastReceiver
这个同上

以上是使用总线模式比较好的点。


举报

相关推荐

0 条评论