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