Android学习篇章28-Broadcast广播基础-BroadcastReceiver

来源:互联网 发布:西南大学网络继续教育 编辑:程序博客网 时间:2024/05/09 17:34

MainActivity:

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overrideprotected void onPause() {//取消动态注册  动态广播一旦注册必须取消 ,否则会有异常//动态注册的广播 生命周期要比静态注册的生命周期短的多 只有程序在运行时才能收听广播this.unregisterReceiver(receiver);super.onPause();}MyTestBroadcastReceiver receiver=new MyTestBroadcastReceiver();@Overrideprotected void onResume() {//动态注册广播接收器IntentFilter filter=new IntentFilter(MyTestBroadcastReceiver.SEND_ACTION);this.registerReceiver(receiver, filter);super.onResume();}public void clickBtn(View view){Intent intent=new Intent();//intent.setPackage(packageName);//可以限定这个广播的收听范围是在这个包中intent.setAction("android.intent.action.Send_My_Broadcast");      sendBroadcast(intent);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

BroadcastReceiver:

public class MyTestBroadcastReceiver extends BroadcastReceiver{public static final String  SEND_ACTION="android.intent.action.Send_My_Broadcast"; @Overridepublic void onReceive(Context context, Intent intent) {String action=intent.getAction();if(SEND_ACTION.equals(action)){Log.i("test", "已经收到了广播");}}}