第一种在JAVA代码中注册接收端:
1 package com.zzw.broadcast; 2 3 import android.app.Activity; 4 import android.content.BroadcastReceiver; 5 import android.content.Context; 6 import android.content.Intent; 7 import android.content.IntentFilter; 8 import android.os.Bundle; 9 import android.util.Log; 10 import android.view.View; 11 import android.view.View.OnClickListener; 12 13 public class MainActivity extends Activity { 14 final String action = "com.zzw"; 15 BroadcastReceiver mBroadcastReceiver; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 setContentView(R.layout.activity_main); 21 init(); 22 // 点击按钮发送广播 23 findViewById(R.id.button).setOnClickListener(new OnClickListener() { 24 @Override 25 public void onClick(View v) { 26 // 发送广播 27 Intent intent = new Intent(); 28 intent.setAction(action); 29 intent.putExtra("name", "zzw"); 30 MainActivity.this.sendBroadcast(intent); 31 Log.e("发送广播的状态-----","发送成功"); 32 } 33 }); 34 } 35 36 // 注册接收端 37 private void init() { 38 mBroadcastReceiver = new TestBroadcastReceiver(); 39 IntentFilter filter = new IntentFilter(action);// 过滤 40 registerReceiver(mBroadcastReceiver, filter); 41 } 42 43 private class TestBroadcastReceiver extends BroadcastReceiver { 44 // 接收广播 45 @Override 46 public void onReceive(Context context, Intent intent) { 47 Log.e("接受广播的状态-----", "收到广播"); 48 Log.e("收到的action-----", intent.getAction()); 49 Log.e("收到的name-------", intent.getExtras().getString("name")); 50 } 51 } 52 53 // 关闭广播 54 @Override 55 protected void onDestroy() { 56 if (mBroadcastReceiver != null) { 57 unregisterReceiver(mBroadcastReceiver); 58 } 59 super.onDestroy(); 60 } 61 }
第二种在AndroidManifest中注册接收端:
发送的代码:
1 package com.zzw.broadcast2; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.util.Log; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 10 public class MainActivity extends Activity { 11 String action = "com.zzw"; 12 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 findViewById(R.id.button1).setOnClickListener(new OnClickListener() { 18 @Override 19 public void onClick(View v) { 20 Intent intent = new Intent(action); 21 intent.putExtra("name", "zzw"); 22 MainActivity.this.sendBroadcast(intent); 23 Log.e("发送的状态-----", "发送成功"); 24 } 25 }); 26 } 27 }
接收的代码:
1 package com.zzw.broadcast2; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.util.Log; 7 8 public class TestReceiver extends BroadcastReceiver { 9 10 @Override 11 public void onReceive(Context context, Intent intent) { 12 Log.e("接收的状态-----", "接受成功"); 13 Log.e("接受到的action---", intent.getAction()); 14 Log.e("接受到的name-----", intent.getExtras().getString("name")); 15 } 16 }
AndroidManifest中注册接收端代码:在application中,与activity同级
1 <receiver android:name="com.zzw.broadcast2.TestReceiver" > 2 3 <!-- 过滤器 --> 4 <intent-filter> 5 <action android:name="com.zzw" /> 6 </intent-filter> 7 </receiver>