普通广播Normal broadcasts使用

本文档介绍了Android中的普通广播Normal broadcasts,通过Context.sendBroadcast发送,完全异步执行,所有接收器同时运行但顺序未定。这种方式提高了效率,但无法使用结果或中止API。示例展示了如何创建一个发送短信的机制,包括定义广播接收器、在Activity中启动及在清单文件中声明。
摘要由CSDN通过智能技术生成

http://developer.android.com/reference/android/content/BroadcastReceiver.html


根据文档理解:普通广播Normal broadcasts用Context.sendBroadcast发送,是完全异步发送的,所有的广播接收器都运行时在同一时间内,但是次序未定。这样的好处是高效传输,缺点是接收器不能使用到结果或中止API.

  • Normal broadcasts (sent with Context.sendBroadcast) are completely asynchronous. All receivers of the broadcast are run in an undefined order, often at the same time. This is more efficient, but means that receivers cannot use the result or abort(流产) APIs included here.

可以建立发送短信机制。如图:




建立工程Normal broadcasts,定义一个广播,声明一个类Receiver。

启用广播在activity中启动,清单文件中添加receive。

MainActivity.java文件中只是注册一个button事件,button在xml文件中已经标签好。

public class MainActivity extends Activity {
	private Button button;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) this.findViewById(R.id.button1);
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this, MyReceiver.class);
				sendBroadcast(intent);
			}
		});
	}

接收文件Receiver.java中定义广播的声明周期和发送的信息:

public class MyReceiver extends BroadcastReceiver {

	private NotificationManager manager;
	private Notification.Builder builder;

	@Override
	public void onReceive(Context context, Intent intent) {
		// TODO Auto-generated method stub
		manager = (NotificationManager) context
				.getSystemService(Context.NOTIFICATION_SERVICE);
		builder = new Notification.Builder(context);
		builder.setContentTitle("有短信来啦");
		builder.setContentText("晚上有时间吗?");
		builder.setSmallIcon(R.drawable.ic_launcher);
		manager.notify(1001, builder.build());
	}

}

AndroidManifest文件中一定要注册有

<receiver
 android:name="com.example.android_broadcast_normal.MyReceiver" >
</receiver>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值