2013-03-25 12 views
6

È possibile annullare la registrazione di uno BroadcastReceiver che è stato registrato tramite manifest? Inoltre, fatemi sapere se è possibile ignorare lo BroadcastReceiver, senza apportare alcuna modifica al codice, in quanto questo BroadcastReceiver non è di alcuna utilità per me ora. Grazie.annullare la registrazione del destinatario della trasmissione registrato tramite manifest

+2

È possibile abilitarlo e disabilitarlo sul manifesto e abilitarlo e disabilitarlo anche a livello di codice ... si veda questa risposta: http://stackoverflow.com/questions/5624470/enable-and-disable-a-broadcast-receiver –

+2

sì, è possibile utilizzare 'getPackageManager(). SetComponentEnabledSetting' per abilitare o disabilitare il ricevitore di trasmissione in fase di runtime, vedere [Abilitare e disabilitare un ricevitore di trasmissione] (http://stackoverflow.com/questions/5624470/enable-and-disable-a- broadcast-receiver) –

risposta

6

È possibile disattivare ricevitore con questo codice:

PackageManager pm = getPackageManager(); 
    ComponentName compName = 
     new ComponentName(getApplicationContext(), 
      MyReceiver.class); 
    pm.setComponentEnabledSetting(
     compName, 
     PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
     PackageManager.DONT_KILL_APP); 

Inoltre è possibile utilizzare per abilitare COMPONENT_ENABLED_STATE_ENABLED ricevitore.

+0

possiamo anche disabilitarlo programmaticamente, utilizzando un recevicer non registrato? –

Problemi correlati