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 ..
- ¿Qué es 'action android: name = "com.android.vending.INSTALL_REFERRER"'?
- Actualización del componente UI de actividad de Broadcast Receiver?
- Creado BroadcastReceiver que muestra el nombre de la aplicación y el número de versión en la instalación / desinstalación de cualquier aplicación?
- La aplicación de Android A quiere realizar el seguimiento de los datos de referencia de Google Play para la instalación de la aplicación Android B
- Crear notificación con BroadcastReceiver
- Los componentes Broadcastreceiver no pueden enlazar servicios en android
- ¿Cómo usar el método registerReceiver?
- Android.net.wifi.WIFI_STATE_CHANGED no se está transmitiendo
- Android: habilitar y servicios
- Android: Consulta del registro de llamadas después de que se haya actualizado una vez que termina una llamada
- ¿Puede el servicio de una aplicación Android ejecutarse antes de que el usuario lo inicie?
- Android: Cómo comprobar si el número SMS entrante existe en el teléfono de contacto en BroadcastReceiver y el bloque es el número no existe
- La detección de cambios de estado de la red Android tarda tiempo
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
- ¿Cuál es la diferencia entre layout_gravity = "center_vertical" y layout_centerVertical = "true"
- ContentObserver no funciona en android