A界面
private boolean flagReceiveRegis;
private var mDesignCurrentProduct: ProductDetailNew? = null
case R.id.start_receive: //注册广播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ACTION);
registerReceiver(myBroadcastReceive, intentFilter);
flagReceiveRegis = true;
startActivity(new Intent(this, AnotherActivity.class));
break;
BroadcastReceiver myBroadcastReceive = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
mDesignCurrentProduct = Gson().fromJson(intent.getExtras().getString("msg"), ProductDetailNew::class.java)//接受广播数据
Log.i("广播", "----接收到的是----" + intent.getStringExtra("msg")); // 注意A界面 "msg" 要和B界面一样才能接受到
}
};
@Override
protected void onDestroy() {
if (flagReceiveRegis) {
unregisterReceiver(myBroadcastReceive);
flagReceiveRegis = false;
Log.i("广播", "----注销了");
} else {
Log.i("广播","----还没有开启广播");
}
super.onDestroy();
B界面 jsons数据传输到A界面
public static final String ACTION ="com.example.action";
private var shopProductDetail: ProductDetailNew? = null
//后台返回数据
private fun getShopListData(spuId: String) {
val resp = object : CustomDisposable<RespMsg<ProductDetailNew>>(mContext) {
override fun onNext(t: RespMsg<ProductDetailNew>) {
super.onNext(t)
if (t.code == 200) {
if (t.data != null) {
shopProductDetail = t.data
val intent = Intent(ACTION)
intent.putExtra("msg",Gson().toJson(shopProductDetail)) //广播传输jsons数据
sendBroadcast(intent)
finish()
}
}
}
productService.queryProductDetailNew(spuId)
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(resp)
}