主业iOS/PHP,副业啥都玩,QQ:705719110,欢迎来撩!

安卓基础学习笔记(九)

Android学习 随风 178℃ 0评论

在布局文件给组件添加
android:onClick=”doClick”
目的
是在activity处理点击事件
添加对应的处理方法
方法语法:
View v:处理多个组件的区分
v.getId();
public void doClick(View v){
}
——————–
广播(四大组件之一)
广播概念
系统提供
应用程序之间
信息传递的机制

原理
数据发送源发送广播(按照特定的频率(action))
广播接收方可以是多个,但是要保证接收方
接收的频率(action)和发送方一致
intent-filter–设置频率(action)
用途
意图过滤器作用Intetnt-Filter–>
告诉系统我能够处理哪些事情
1>接收系统广播 安卓系统不停往外发送广播
比如电量.wifi状态…
2>接收应用程序组件之间广播
界面–服务
界面–界面
服务–服务
适用场景
广播获取消息后,应用场景
UI更新
handler–ui更新
eventbus –框架
————————
学习广播基本步骤
广播对象的创建
1>创建广播类对象对象继承BroadcastReceiver
2>要求重写onReceive{
}
发送广播
1>创建intent()对象–>设置相应action
sendBroadcast();

接收广播
在广播的onReceive()接收广播
广播注册
1>静态注册
在主配置文件添加

–意图过滤器表明我能够处理的广播
特点:常驻型广播(活一次,永久活着)

测试–>系统广播的接收
静态注册广播生命周期
2> 动态注册广播
创建在activity目录下
注册位置
activity生命周期的oncreat()
注册的方法
registerReceiver(
innerReceiver–>广播对象
, filter—>过滤器
);
注意动态注册广播要在activity生命周期结束之后解注册
protected void onDestroy() {
//将广播解除注册
unregisterReceiver(解除注册的广播对象);
}
动态广播如果不解除注册在给报异常
———————
通过广播传递数据
借助intent
putExtra(“key”,value);
get…Extra(“key”);
———
模拟下载过程
1启动一个线程动态获取数据
讲数据装入广播发送到广播接收器让广播接收器开始更新
2能够修改主UI
从子线程将数据通过广播传递到UI
—————-
广播的分类
无序广播
特点:只要注册相应频率(action)
任何广播接收器都可以接收
有序的广播
特点:
传递有顺序
先接收广播的可以将广播中断
abortBroadcast();//可以达到中断广播的作用
注意如果无序广播调用这个方法出现异常
对于接收的信息进行修改
setResult..();getResult..();

后序接受者可能收不到消息
广播的优先级:
1> 如果没有设置任何优先条件的话.
在主配置文件里边谁先注册的谁先接收消息
2>人为干涉优先级
优先级所在位置 intent-filter标签里有属性

:priority=”整型变量”
优先数值大会优先接收
3>匹配action(频道)相同又
优先级设置的话
动态广播先于静态广播接收

测试步骤
1>生明两个广播并且都做静态注册
2>将两个广播里面设置action设置成一样
3>给这两个广播接收器发送有序的广播
4>在两个广播接收器里做数据捕捉

粘性广播(粘滞广播)
需要权限:broadcast_sticky
特点:粘性广播会一直保存在系统中直至被使用(系统内存不足)
何时注册何时就可接收
5.0基本宣布过时
————————-
电话拨打的拦截
了解打电话
输号码
按拨号键
系统发出有序广播(setResultData())
修改的getResultData();获得的数据
步骤
权限:android.permission.PROCESS_OUTGOING_CALLS
创建一个广播
对广播进行静态注册
给广播添加频道(action)–>系统拨号的action
该广播就能处理拨号信息获取
通过号码匹配就可以达到拦截特定号码的功能

转载请注明:怼码人生 » 安卓基础学习笔记(九)

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址