EventBus(初级)
概述:
EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦
使用步骤:
1。引入libs包 自定义一个类
2。需要接收消息的页面进行注册EventBus EventBus.getDefault().register(this);
EventBus.getDefault().unregister(this);
3。发送数据的页面通过EventBus.getDefault().post(object);发送数据
java代码如下
自定义类:
public class MyEventType { private String msg; public MyEventType(String msg) { this.msg = msg; } public String getMsg() { return msg; }}
MainActivity:
public class MainActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //注册EventBus EventBus.getDefault().register(this); tv = (TextView) findViewById(R.id.tv); } public void ToSecondActivity(View v) { Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); } //处理接收到的数据// public void onEventMainThread(MyEventType event) { //MyEventType 自定义的类 public void onEventMainThread(MyEventType event) { String msg = "接收到MainActivit的信息" + event.getMsg(); System.out.println("-----------onEventMainThread----------------"); Toast.makeText(getBaseContext(), msg, Toast.LENGTH_LONG).show(); tv.setText(msg); } @Override protected void onDestroy() { super.onDestroy(); //解除注册 EventBus.getDefault().unregister(this); }}
SecondActivity 代码
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); EventBus.getDefault().post(new MyEventType("MainActivity info"));
816

被折叠的 条评论
为什么被折叠?



