美文网首页Android攻略
【Android开发中用Annotation 10行代码完成广播

【Android开发中用Annotation 10行代码完成广播

作者: NoValue | 来源:发表于2017-12-08 17:02 被阅读62次

    【Android开发中用Annotation 10行代码完成广播发送接收】

    在Android开发中大量的广播,如果用EventBus接收发送广播另当别论,如果用系统自带的广播,要先注册 然后注册Action,最后Destory的时候还要 unregist, 发送广播的地方 还要搞个类 extends BroadCastReicever 非常繁琐,代码越多 越容易出问题,越简单 越容易排错,我一直思考如何 几行代码搞定复杂操作。后来找到了Google早已准备好的 Annotation注解框架,不到10行搞定发送接收!!立竿见影 效果果然快,代码行数果然少。

    我们看看以前的写法比对一下

    private BroadcastReceiver mVmcMoneyReceiver = new BroadcastReceiver( ){
      @Override
      public void onReceive( Context context, Intent intent ){
      }
      if (TextUtils.equals(action, Action.....)) {
        //Action判断
     }....
    

    收广播的地方还要先注册、再注销方法调用部分多

    IntentFilter filter1 = new IntentFilter(Action. xxxxxxxx); 
    
    LocalBroadcastManager.getInstance(context).registerReceiver( filter1);
    

    注销广播

    @Override
     protected void onPause( ){
      super.onPause( );
      LocalBroadcastManager.getInstance(this).unregisterReceiver(mVmcOutGoodsReceiver);
      LocalBroadcastManager.getInstance(this).unregisterReceiver(mVmcMoneyReceiver);
      LocalBroadcastManager.getInstance(this).unregisterReceiver(mVmcPaySucessReceiver);
      unregisterReceiver(cardBanReceiver);
      unregisterReceiver(cardCanReceiver);
    }
    

    比对一下 Annotation的注解写法

    需要接受广播的 一行代码搞定

    @EActivity 
    public class MainActivity extends BaseActivity{
    

    直接关注与业务,什么Action??简单明了!!对不需要管他 要注册要unRegist

    @Receiver(actions = Schema.ACTION_CHANG_TEXT)
     public void onReiverChangeTextAction( ){
      tvFirst.setText("哈哈哈 我收到了");
     }
    

    直接发广播(另外一个页面)

    public void sendBoradCastReceiver( View view ){
      Intent intent = new Intent( );
      intent.setAction(Schema.ACTION_CHANG_TEXT);
      sendBroadcast(intent);
     }
    

    demo截图

    发送广播页面


    image.png

    接收广播页面


    image.png

    更多参考 请参考:https://github.com/androidannotations/androidannotations/wiki/Receiving-intents

    相关文章

      网友评论

        本文标题:【Android开发中用Annotation 10行代码完成广播

        本文链接:https://www.haomeiwen.com/subject/pezeixtx.html