Android sms广播接收器即使未绑定也会被调用

Android sms广播接收器即使未绑定也会被调用,android,nullpointerexception,broadcastreceiver,sms,Android,Nullpointerexception,Broadcastreceiver,Sms,我正在创建一个应用程序,其中我正在使用广播接收器获取即将到来的消息的内容。我正在使用一个接口来实现广播接收器绑定和解除绑定。这已在我的另一个应用程序中实现。在那里,它可以正常工作,但在当前应用程序中,如果活动停止或销毁,则应用程序崩溃,这会导致以下错误 Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void com.encureit.a24klen.interfaces.SmsList

我正在创建一个应用程序,其中我正在使用广播接收器获取即将到来的消息的内容。我正在使用一个接口来实现广播接收器绑定和解除绑定。这已在我的另一个应用程序中实现。在那里,它可以正常工作,但在当前应用程序中,如果活动停止或销毁,则应用程序崩溃,这会导致以下错误

Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void com.encureit.a24klen.interfaces.SmsListerner.messageReceived(java.lang.String)' on a null object reference
这是我的广播接收器类别代码:

public class SmsReceiver extends BroadcastReceiver {
private static SmsListerner smsListener;
@Override
public void onReceive(Context context, Intent intent) {
    Bundle bundle=intent.getExtras();

    Object []pdus= (Object[]) bundle.get("pdus");

    for (int i=0;i<pdus.length;i++){
        SmsMessage smsMessage=SmsMessage.createFromPdu((byte[]) pdus[i]);

        String messagBody=smsMessage.getMessageBody();
        if (messagBody.contains("Password")){
            smsListener.messageReceived(messagBody);
        }
    }

}

public static void bindListner(SmsListerner listener){

    smsListener=listener;
}

public static void unBindListener(){
    smsListener=null;
}
}
在onDestroy

 @Override
protected void onStop() {
    super.onStop();
    SmsReceiver.unBindListener();

}

消息传来,一切正常,但当应用程序在后台时,它会崩溃。请帮助我解决这个问题。首先感谢您

当然,当您停止活动时,
smsListener
将变为
null
,因为如果您不想在活动停止时发生任何事情,它将崩溃添加此项

 if (messagBody.contains("Password")&&smsListener!=null){
            smsListener.messageReceived(messagBody);
        }

谢谢@Mohammad.。你的解决方案解决了问题issue@AkashK不客气
 if (messagBody.contains("Password")&&smsListener!=null){
            smsListener.messageReceived(messagBody);
        }