android中的广播

android中的广播有有序广播和普通广播两种网上有很多介绍的,这里只是简单介绍一下普通广播的实现


首先在主页面放置一个按钮然后再在按钮的监听之后在监听里实现广播因为只是实现一个简单的普通广播所以我注释了有序广播的实现,没有写有序广播的接收

public class MainActivity extends Activity {
	private Button btn1;
	private Button btn2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btn1 = (Button) findViewById(R.id.button1);
		btn2 = (Button) findViewById(R.id.button2);

		OnClickListener litener = new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				switch (v.getId()) {
				case R.id.button1:
					Intent intent = new Intent();
					intent.setAction("android.intent.action.CaseReceiver");//设置要接收的class
					intent.putExtra("msg", "这是一条普通的receiver");
					sendBroadcast(intent);
					break;
//				case R.id.button2:
//					Intent intent1 = new Intent();
//					intent1.setAction("android.intent.action.CaseReceiver");
//					intent1.putExtra("msg", "这是一条有序的receiver");
//					sendOrderedBroadcast(intent1, null);
//					break;

				default:
					break;
				}

			}
		};
		btn1.setOnClickListener(litener);
		btn2.setOnClickListener(litener);
	}
}
普通广播的接收实现

public class CaseReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		String str = intent.getStringExtra("msg");
		Toast.makeText(context, "-->" + str, Toast.LENGTH_LONG).show();
		Log.i("tag", "-------------->接收");
	}
}
其中值得我们注意的是他们的注册在 <application>的标签里添加服务

<receiver android:name="cm.example.helloserverd.CaseReceiver" >
            <intent-filter android:priority="200" >
                <action android:name="android.intent.action.CaseReceiver" />

                <category android:name="android.intent.category.DEFAULT" >
                </category>
            </intent-filter>
        </receiver>
        
其中第一个receiver标签里的的android:name是广播接收者的class的类名而第二个action里的android:name是一个相当于映射的别名,在发送页面里的setaction所写的就是第二个action的名字,
值得注意的是第一个action是类的路径,而第二个action则是android.intent.action.xxxxxx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值