android-广播Broadcast【十三】

android--广播Broadcast【十三】

广播(Broadcast)是在组件之间传播数据(Intent)的一种机制;这些组件甚至是可以位于不同的进程中,起到进程间通信的作用,主要是用于通知方面的.,下面要创建一个该例子的demo.

1.先定义一下通知广播的消息标识

private String MSG_BROADCAST = "MSG_BROADCAST";

2.广播监听以及处理广播消息

	private void listen() {
		IntentFilter filter = new IntentFilter();
		filter.addAction(MSG_BROADCAST);
	
		MainActivity.this.registerReceiver(receiver, filter);
	}

	private BroadcastReceiver receiver = new BroadcastReceiver() {
		@Override
		public void onReceive(Context context, Intent intent) {
			String action = intent.getAction();
			if (MSG_BROADCAST.equals(action)) {
				Log.i(TAG,"recv msg");
			}
		}
	};

3.广播监听停止

	private void stopListen() {
		MainActivity.this.unregisterReceiver(receiver);
	}
	

4.分别在onResume和onPause事件里面调用

	@Override
	public void onResume() {
		super.onResume();
		listen();
	}
	@Override
	public void onPause() {
		super.onPause();
		stopListen();
	}

5.测试发广播

	btn = (Button) this.findViewById(R.id.button1);

		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Log.i(TAG, "btn click start ");
				Intent intent = new Intent(MSG_BROADCAST);
				intent.putExtra("message", "test");// 参数

				sendBroadcast(intent);
			}
		});