59 votes

Comment envoyer et recevoir un message diffusé

J'essaie de transmettre des données entre deux activités situées à l'intérieur d'onglets. J'essaie d'utiliser le sendBroadcast. Avec les points d'arrêt définis, je n'atteins jamais OnReceive.

manifeste:

  <activity android:name=".WebResults"
              android:label="@string/app_name">
            <intent-filter>
    <action android:name="com.toxy.LOAD_URL" />
   </intent-filter>         
  </activity>
 

Expéditeur d'activité:

 Intent intent=new Intent(getApplicationContext(),WebResults.class);
intent.setAction("com.toxy.LOAD_URL");
intent.putExtra("url",uri.toString());
sendBroadcast(intent);
 

Récepteur d'activité:

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);    
    IntentFilter filter = new IntentFilter("com.toxy.LOAD_URL");
    this.registerReceiver(new Receiver(), filter);
}


 private class Receiver extends BroadcastReceiver {

 @Override
 public void onReceive(Context arg0, Intent arg1) {

    String url = arg1.getExtras().getString("url");
    WebView webview =(WebView)findViewById(R.id.webView);
    webview.loadUrl(url);
 }

}
 

43voto

Paulo Cesar Points 771

J'avais le même problème que vous, mais j'ai compris:

Supprimer le filtre d'intention du manifeste et le modifier

Intent intent=new Intent(getApplicationContext(),WebResults.class);

pour

Intent intent=new Intent();

J'espère que ça aide!

8voto

Abdul Points 71

Veuillez utiliser

 intent.getStringExtra("");
 

et

 new Intent();
 

Travaillé pour moi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X