2012-03-20 9 views
5

consigo este tema en el ICS, pero no en las versiones anteriores:Receptor de radio OnReceive() no se llama

De App1 que yo envío a emisión y tratando de recibirlo en 2 actividades de aplicaciones. Pero nunca se llama a onReceive en la actividad de la aplicación 2.

No puedo entender lo que es el bloque onReceive de ser llamado, aunque he especificado todo correctamente.

corro el BroadcastReceive primero y luego BroadcastSend

Cualquier ayuda que ayudaría a resolver esto se aprecia mucho.

App1 enviar actividad

public class BroadcastSend extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Intent i = new Intent(); 
    i.setAction("edu.ius.rwisman.custom.intent.action.TEST"); 
    i.putExtra("url","ww.ius.edu"); 
    sendBroadcast(i); 
} 

App 2 recibir actividad

public class BroadcastReceive extends BroadcastReceiver{ 
// Display an alert that we've received a message.  
@Override 
public void onReceive(Context context, Intent intent){ 
    System.out.println("Inside onReceive"); 
    String url = intent.getExtras().getString("url"); 
    Toast.makeText(context, "BroadcastReceive:"+url, Toast.LENGTH_SHORT).show(); 
    } 

manifiesto de App 2

<?xml version="1.0" encoding="utf-8"?> 

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <receiver android:name="edu.ius.rwisman.BroadcastReceive.BroadcastReceive" android:enabled="true" android:exported="true"> 
     <intent-filter> 
      <action android:name="edu.ius.rwisman.custom.intent.action.TEST"/> 
     </intent-filter> 
    </receiver> 
</application> 

Respuesta

10

En ICS no recibirá difusiones hasta que la aplicación se inicie manualmente al menos una vez. En Android 3.1+, las aplicaciones se detienen si nunca se han ejecutado o se han detenido por la fuerza. El sistema excluye estas aplicaciones de los intentos de transmisión. Se pueden incluir utilizando el indicador Intent.FLAG_INCLUDE_STOPPED_PACKAGES como este ...

i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); 
+0

gracias por que esto solucionó el problema. pero primero ejecutamos la actividad de recepción y luego la actividad de envío. entonces, ¿por qué enfrentamos este problema? – user264953

+0

Las aplicaciones están detenidas cuando se instalan por primera vez pero aún no se han iniciado y cuando el usuario las detiene manualmente (en Administrar aplicaciones) ... consulte este http://developer.android.com/sdk/android- 3.1.html # launchcontrols – 5hssba

+2

, pero ¿cómo incluir este indicador en el manifiesto al registrar la difusión –

Cuestiones relacionadas