RxBus 使用:
Rxbus基于事件交互模式,可以很好的进行页面之间的数据传递。(Android studio环境下)。
注意:传递数据到下一个页面必须在下一个页面已经创建的前提下!
一、在build.gradle添加依赖的包
compile 'com.hwangjr.rxbus:rxbus:1.0.5'
二、注册事件基类创建一个添加事件标签的类:其中LogIn_Home是事件的标签。
创建一个注册事件的基类:public enum BusAction { ; public static final String LogIn_Home="LogIn_Home"; }
public class BusActivity<StringValue> extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); RxBus.get().register(this); } @Override protected void onDestroy() { super.onDestroy(); RxBus.get().unregister(this); } }
三、发送数据的Activity
在需要发送数据的地方写:
RxBus.get().post(BusAction.LogIn_Home,data);
四、接受数据的Activity
注意:接收数据的Activity必须继承 BusActivity
其中,Rxbus发送数据不能发送int类型,亲测,目前还没找到原因,其他诸如byte、String 类型等都可以传递@Subscribe(tags = {@Tag(BusAction.LogIn_Home)}) public void ToeastInfo(byte[] info) { System.out.println(info); //info即为收到的数据 startActivity(new Intent(LoginActivity.this, HomeActivity.class)); } }