BroadCast的使用
1.动态注册广播:
第一个界面
public class MainActivity extends AppCompatActivity {
//声明广播
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(mContext, "接收到广播发送的数据了", Toast.LENGTH_SHORT).show();
tvContent.setText("广播数据");
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
//注册
IntentFilter filter = new IntentFilter();
filter.addAction("com.bsoft.function");
registerReceiver(mReceiver, filter);
}
@Override
protected void onDestroy() {
super.onDestroy();
//反注册
unregisterReceiver(mReceiver);
}
}
第二个界面:
sendBroadcast(new Intent("com.bsoft.function"));
startActivityForResult的使用
//第一个界面
Intent intent = new Intent(mContext, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
int age = data.getIntExtra("age", -1);
String name = data.getStringExtra("name");
tvContent.setText("name: "+name+"\n"+"age: "+age);
}
}
//第二个界面
Intent intent = new Intent();
intent.putExtra("name", "李书记");
intent.putExtra("age", 18);
setResult(RESULT_OK, intent);
finish();
EventBus的使用
//第一个界面中
//注册
EventBus.getDefault().register(this);
//反注册
EventBus.getDefault().unregister(this);
//EventBus 发送消息后执行的方法
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventExpert(EventExpert event){
tvContent.setText("姓名:"+event.getName()+"\n"+"年龄:"+event.getAge());
}
//第二个界面
EventBus.getDefault().post(new EventExpert("李专家",28));
//EventBus中通过类来传递数据
public class EventExpert {
private String name;
private int age;
public EventExpert(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}