How to unregister BroadcastReceiver

后端 未结 3 770
我在风中等你
我在风中等你 2020-11-27 04:51

My app uses a BroadcastReceiver to get sms in this way:

SmsBR.java

public class SmsBR extends BroadcastReceiver {

    @Override
            


        
3条回答
  •  感动是毒
    2020-11-27 05:43

    First remove receiver tag from manifest, then: for service :

    @Override
    public void onCreate() {
    
    
        myReceiver = new SmsBR();
        IntentFilter filter = new IntentFilter();
        filter.addAction("android.intent.action.SMS_RECEIVED");// add any actions you want
        registerReceiver(myReceiver , filter);
    
     }
    
    @Override
    public void onDestroy() {
        super.onDestroy();
        if (myReceiver != null)
            unregisterReceiver(myReceiver);
    }
    

    for Activity:

    public class MyActivity extends Activity {
      private final BroadcastReceiver mybroadcast = new SmsBR();
    
      public void onResume() {
        super.onResume();
    
        IntentFilter filter = new IntentFilter();
        filter.addAction("android.provider.Telephony.SMS_RECEIVED");
        registerReceiver(mybroadcast, filter);
      }
    
      public void onPause() {
        super.onPause();
    
        if (mybroadcast!= null)
           unregisterReceiver(mybroadcast);
      }
    }
    

提交回复
热议问题