BroadcastReceiver 设置自己的上下文

BroadcastReceiver setting own context

在像这样创建 broadcastreceiver 后可以设置自己的上下文:?

public class MyFragment extends Fragment(){

Button myButton;

@Override
 onCreate {
  myButton = (Button) findview...
  myButton.setOnClickListner(myListener);
}
 .
 .
 .

MyListener {
@Override
OnClickListner {
  MyBroadCastReceiver receiver = new MyBroadCastReceiver()
  receiver.setContext(mContext)
  }
}    
    public static class MyBroadcastReceiver extends BroadcastReceiver {

     Context mContext;

     void setContext(Context context) {
      mContext = context;
     }

     @Override
     public void onReceive(Context context, Intent intent) {
      if (mContext!= null){
        log.d(TAG, "Context not null")
      }
    }

}

每次调用 onReceive 方法时,我的 mContext 都是空的,有解决办法吗?

试试这个我的朋友

public class MyReceiver extends BroadcastReceiver {
        Context mContext;

         public MyReceiver() {
        super();
       }

        @Override
        public void onReceive(Context context, Intent intent) {
            mContext = context;
            if (mContext != null) {
                log.d(TAG, "Context not null")
            }else{
            log.d(TAG, "  null Context ")
               }
        }
    }

像这样创建新的广播对象

MyReceiver receiver = new MyReceiver(this);

问题在于在清单中声明接收器,而它应该只在片段中声明,更改后,一切正常。 感谢您的帮助。