Android Kotlin 比较稳广播json传值

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)
           }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值