xinyao0 2011-10-14
前些天刚刚做一个项目的预演,要用到广播通知,一下是一些小的学习的心得:
显示声明一个类继承BroadcastReceiver,实现onReceive这个方法:
这你需要的地方启用广播:
Intentintent=newIntent();
intent.setAction('action1');
sendBroadcast(intent);
当然你可以用intent传递一些值在广播中获取这些值,之快就自己发挥了。
广播的启动还要注册,一般两种注册方式,这里是在AndroidManifest.xml中进行注册:
<receiverandroid:name=".broadcast.ReceiveBroadCast">
<intent-filter>
<actionandroid:name="action1">
</action>
</intent-filter>
</receiver>
注册的时候可以注册不同的action,用于启用广播时完成不同的操作,最后不要忘了配置权限:
<uses-permissionandroid:name="android.permission.INTERNET"/>
广播启动后要显示通知:
NotificationManagernotificationManager=(NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
//申明notification的对象
Notificationnotification=newNotification(R.drawable.icon,msg,System.currentTimeMillis());
notification.flags=Notification.FLAG_AUTO_CANCEL;
//构造intent对象
Intentintent=null;
intent=newIntent();
//这里可以点击通知跳转到你要的activity中
//cotext.startActivity();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
//使用pendingIntent对Intent进行包装
PendingIntentpendingIntent=PendingIntent.getActivity(context,id,intent,PendingIntent.FLAG_UPDATE_CURRENT);
//通知显示时,会伴随音乐
//notification.defaults=Notification.DEFAULT_SOUND;
//发送消息
notification.setLatestEventInfo(context,msg,mi.getMsg(),pendingIntent);
//通知该消息可以发布了
notificationManager.notify(id,notification);