слушатель всегда нулевой - PullRequest
0 голосов
/ 21 июня 2019

У меня есть широковещательный приемник, подобный этому

public class PhoneCallStateReceiver extends BroadcastReceiver {
private static boolean incomingFlag = false;
private OnCallListener mListener;
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
        incomingFlag = false;
        mListener.startCall();
    } else {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
        switch (tm.getCallState()) {
            case TelephonyManager.CALL_STATE_RINGING:
                mListener.startCall();
                incomingFlag = true;
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                if (incomingFlag) {
                    mListener.stopCall();
                }
                break;
            case TelephonyManager.CALL_STATE_IDLE:
                if (incomingFlag) {
                    mListener.stopCall();
                    Log.i(TAG, "incoming IDLE");
                }
                break;
        }
    }
}

public void setOnCallListener(OnCallListener listener) {
    this.mListener = listener;
}

interface OnCallListener {
    void startCall();
    void stopCall();
}

}

в коде моей активности

mPhoneCallStateReceiver = new PhoneCallStateReceiver();
    mPhoneCallStateReceiver.setOnCallListener(this);
    registerReceiver(mPhoneCallStateReceiver, new IntentFilter("android.intent.action.PHONE_STATE"));

но когда приходит вызов метода класса mListener.startCall (); и выйдет ошибка null Object в этих строках Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...