android广播事件处理机制学习小结_android事件处理机制
android广播事件处理机制学习小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“android事件处理机制”。
Android广播事件处理机制
广播事件处理机制是系统级别的,可以通过构建Intent 对象 然后调用sendBroadcast()方法将广播发出。事件的接受是通过定一个继承BroadcastReceiver的类来实现的,继承该类后覆盖onReceiver()方法,在该方法中响应事件。
以下内容包括:自己定义BroadcastReceiver来处理广播事件、系统广播事件的使用、Notification和NotificationManager的使用
1.自己定义BroadcastReceiver:
a.利用按钮点击发送广播 按钮的onClick()中:
…..// 定义一个Action常量
private static final String MY_ACTION = “com.hunsion.action.MY_ACTION”;// 此常量跟
中的属性相对应.………
public void onClick(View v){
}
b.自定义BroadcastReceiver 如下:
继承至 BroadcastReceiver
public cla MyReceiver extends BroadcastReceiver{
@Override//覆盖了onReceive方法 public void onReceive(Context cxt, Intent intent){// 从Intent中获得信息 // 实例化Intent对象 Intent intent = new Intent();// 设置Intent action属性 intent.setAction(MY_ACTION);// 为Intent添加附加信息 intent.putExtra(“msg”, “msg”);// 发出广播 sendBroadcast(intent);
}} String msg = intent.getStringExtra(“msg”);// 使用Toast显示 Toast.makeText(cxt, msg, Toast.LENGTH_LONG).show();
C 如果要使用系统广播事件
则同样要继承BroadcastReceiver 并覆盖onReceive()方法,这里不需要自己构建Intent对象 只是在 配置时使用系统的广播事件,如下:
其中android.intent.action.BOOT_COMPLETED 指的是 系统启动完成的广播事件
常见的标准的广播Action常量:有
android.intent.action.BOOT_COMPLETED系统启动完成android.intent.action.ACTIOPN_TIME_CHANGED时间改变
android.intent.action.ACTIOPN_DATE_CHANGED系统日期改变
android.intent.action.ACTION_TIMEZONES_CHANGED时区改变
android.intent.action.ACTION_BATTERY_LOW电量低
android.intent.action.ACTION_MEDIA_EJECT插入或者播拔出外部媒体
android.intent.action.ACTION_MEDIA_BUTTON按下媒体按钮
android.intent.action.ACTION_PACKAGE_ADDED添加包
android.intent.action.ACTION_PACKEAGE_REMOVED删除包
2.使用Notification和NotificationManger 显示广播消息方法比较简单 一般先获得
NotificationManger,然后实例化Notification 设置其属性,通过
NotificationManger发送通知。
基本步骤为:
a.获得NotificationManager
private NotificationManager nm =
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
b.实例化Notification对象
Notification n = new Notification();
// 设置显示图标,该图标会在状态栏显示
/*也可以通过这个构造方法来设置 Notification n = new
Notification(icon,tickertext,when);*/
int icon = n.icon = R.drawable.happy;
// 设置显示提示信息,该信息也会在状态栏显示
String tickerText = “aaaaaaa”;
// 显示时间
long when = System.currentTimeMillis();
n.icon = icon;
n.tickerText = tickerText;
n.when = when;
c.调用setLatestEventInfo()方法 在视图中(非状态栏)设置图标和时间。并发出通知、// 实例化Intent
Intent intent = new Intent(MainActivity.this, MainActivity.cla);// 获得PendingIntent
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
// 设置事件信息
n.setLatestEventInfo(MainActivity.this, “My Title”, “My Content”, pi);// 发出通知
nm.notify(ID, n);
// ID 可以理解为给每个通知一个固定的编号,所以如果我们想取消某个通知。可以调用 nm.cancel(ID);
另:我们可以为Notification对象设置很多其他属性用来进行提示。例如:设置上声音。振动和闪光灯。
a.提示音:
n.defaults |=Notification.DEFAULT_SOUND;
n.sound = Uri.parse(“file:///sdcard/sound.mp3”);//本地声音
n.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI,”6”);b.振动
n.defaults |=Notification.DEFAULT_VIBRATE;
long[] vibrate = {0,50,100,150};
n.vibrate = vibrate;
c.闪光灯
n.defaults |=Notification.DEFAULT_LIGHTS;
n.ledARGB = 0xff00ff00
n.ledOnMS = 300;
n.ledOffMS = 1000;
n.flags |= Notification.FLAG_SHOW_LIGHTS;
Andoid安全机制包括两个层次:系统层和应用层。应用层的安全机制建立在授权与申请基础上,本文不讲。系统层的安全机制包括给每个用户进程分配单独的uid和gid,使用进程本身可以防......
学习之前先了解两个基本概念:一、RFCOMM协议: 一个基于欧洲电信标准协会ETSI07.10规程的串行线性仿真协议。此协议提供RS232控制和状态信号,如基带上的损坏,CTS以及数据信号等,......
车辆事故处理规定及管理办法第一条:应用范围本办法规定与公司各种车辆在生产运输过程中车辆事故的分类,事故损失的计算方法,事故分析处理及应用于本公司驾驶员安全行车的管理。......
虹桥小学家长及学生投诉处理制度 (2013年)一、指导思想为了加强对全校教职员工的监督管理,进一步改进工作作风并畅通工作作风投诉渠道,提高全体教职员工的服务意识,树立服务于家......
投诉处理机制为规范摩天轮游客投诉接待处理,及时改进服务质量,提升游客满意率,特制定本投诉处理机制。一、处理游客投诉的原则全面落实“安全第一、服务至上”的服务理念,游客满......
