您的位置:首页 > 其它

关于BroadCast,startActivityForResult以及EventBus

2017-05-18 16:52 183 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息