Detener el receptor de difusión de un botón en acivity

Quiero detener e iniciar un receptor de difusión a través de un clic de botón. dos servicios asociados con el receptor de radiodifusión también debe parar y comenzar con el botón de clic ¿cómo puedo hacerlo ..

este es el codigo

b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub PackageManager pm = Re_editActivity.this.getPackageManager(); ComponentName componentName = new ComponentName(currentActivity.this, name_of_your_receiver.class); pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); Toast.makeText(getApplicationContext(), "activated", Toast.LENGTH_LONG).show(); } }); b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub PackageManager pm = Re_editActivity.this.getPackageManager(); ComponentName componentName = new ComponentName(currentActivity.this, name_of_your_receiver.class); pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); Toast.makeText(getApplicationContext(), "cancelled", Toast.LENGTH_LONG).show(); } }); 

Puede optar por "detener" un BroadcastReceiver en, por ejemplo, un botón de clic, o tal vez en la onPause () .

Por ejemplo:

 // DECLARED GLOBALLY BroadcastReceiver receiver; Intent intentMyService; ComponentName service; 

Y en el onCreate() :

 // FOR THE SERVICE: intentMyService = new Intent(this, MyGpsService.class); service = startService(intentMyService); // FOR THE BROADCASTRECEIVER: IntentFilter mainFilter = new IntentFilter(); receiver = new MyMainLocalReceiver(); registerReceiver(receiver, mainFilter); 

Entonces para "parar" , todo lo que tienes que hacer, es hacer una llamada a este método en la onPause() o en el clic de un Button :

 // "STOP" THE BROADCASTRECEIVER unregisterReceiver(receiver); // STOP THE SERVICE stopService(intentMyService); 

Ponga este código en el botón de clic, se iniciará una actividad a través de broadcastreceiver

 public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Toast.makeText(context, "MyReceiver Started", Toast.LENGTH_SHORT).show(); Intent myIntent=new Intent(context,MyService.class); context.startService(myIntent); } } 

y luego crear servicio para empezar ……… como:

 public class MyService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId){ Toast.makeText(getBaseContext(), "Service Started", Toast.LENGTH_SHORT).show(); // We want this service to continue running until it is explicitly // stopped, so return sticky. return START_STICKY; } } 
 public class MyActivity extends Activity { private final BroadcastReceiver mybroadcast = new SmsBR(); public void onResume() { IntentFilter filter = new IntentFilter(); filter.addAction("android.provider.Telephony.SMS_RECEIVED"); registerReceiver(mybroadcast, filter); } public void onPause() { 

// agrega la línea abajo en tu evento de clic de botón

  unregisterReceiver(mybroadcast); } } 

Aquí está el código

 private void startBroadCastReceiver() { PackageManager pm = this.getPackageManager(); ComponentName componentName = new ComponentName(this, ConnectionReceiver.class); pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); Toast.makeText(getApplicationContext(), "BroadCast Receiver Started", Toast.LENGTH_LONG).show(); } private void killBroadCastReceiver() { PackageManager pm = this.getPackageManager(); ComponentName componentName = new ComponentName(this, ConnectionReceiver.class); pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); Toast.makeText(getApplicationContext(), "BroadCast Receiver Killed", Toast.LENGTH_LONG).show(); } 

Puede llamar a startBroadCastReceiver () en el método onStart () y killBroadCastReceiver () Acc a su requisito

  • Cómo detener BroadcastReceiver manualmente en android
  • El receptor de la difusión para comprobar la conexión a internet se llama dos veces cuando desconecto el wifi
  • Error del receptor no registrado cuando se llama a la función onDestroy
  • GpsStatus.Listener sólo funciona si el GPS está activado
  • Cambio de conectividad receptor obtiene intenciones falsas en android
  • Prioridad en un receptor de difusión para recibir llamadas
  • Java.lang.InstantiationException: class no tiene constructor de argumento cero
  • Haga clic en la notificación GCM para no abrir la actividad deseada en Android Kitkat
  • ACTION_MY_PACKAGE_REPLACED no recibido
  • Cómo actualizar la interfaz de usuario en un BroadcastReceiver
  • Recepción de llamadas entrantes no funciona (Android 4.1)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.