android权威指南十三章,《Android编程权威指南》第30~32以及第34章读书笔记
配置文件中的broadcast receiver
在配置文件中完成声明后,即使应用当前并未运行,只要有匹配的broadcast intent的发来,broadcast receiver就会接收。收到intent后,onReceiver(...)就会运行,然后broadcast receiver被销毁。
发送broadcast intent
1.创建intent,intent中定义动作action;
2.sendBrocast(Intent)。
动态broadcast receiver
使用
1.在代码中注册receiver,调用registerReceiver(BroadcastReceiver,IntentFilter);
注意:IntentFilter可调用addCategory(String)、addAction(String)和addDataPath(String)等方法达到和在xml中配置intent-filter同样的效果。
2.取消注册,调用unregisterReceiver(BroadcastReceiver,IntentFilter)。
注意:这两个方法是对应的,有注册就一定要取消注册。
接收范围
一般来说,broadcast receiver是可以被系统中的任何应用监听和触发的。
将其限制在应用内部内使用:
1.receiver声明在配置文件中,在receiver标签上添加android:exported="false";
2.创建并使用私有权限。
创建并使用私有权限
创建私有权限:
在配置文件中使用标签:
1.权限名;
2.protectionLevel:确定私有权限使用方式,仅限于内部应用使用权限通常用signature。
eg:
android:protectionLevel="signature"/>
使用:
1.在配置文件中声明使用私有权限,eg:;
2.发送带有权限的broadcast:调用sendBroadcast(...,权限名);
3.接收:调用registerReceiver(...,权限名,...)。
protectionLevel属性值:
protectionLevel
receiver与长时运行任务
在receiver中进行耗时操作:
1.将耗时操作交到Service中处理,通过broadcast receiver启动Service;
2.使用BroadcastReceiver.goAsync(),该方法返回一个BroadcastReceiver.PendingResult对象,使用该对象提供结果。存在不支持旧设备和不灵活的缺点。
网页浏览
1.使用隐式Intent启动系统浏览器,并在其中打开URL指向的网页;
2.使用WebView。
WebView的使用
1.布局中添加WebView控件;
2.配置WebView设置:
① 调用getSetting()获得WebSettings实例;
② 调用方法完成设置,如WebSettings.setJavaScriptEnabled(true)启用JavaScript;
3.配置WebViewClient,通过setWebViewClient(WebViewClient)去覆盖里面要实现的方法,其中shouldOverrideUrlLoading(...),返回true,表示WebView不处理传入的url,交由默认的WebViewClient也就是系统浏览器处理,返回false,表示交由WebView处理;
4.要在2.完成之后才进行,调用loadUrl(String url)加载网页(当然3.中的shouldOverrideUrlLoading(...)返回true的话,这个方法等于不起作用了)。
自定义View和触摸事件
分类
简单视图:可以有复杂的内部,不包含子视图,基本都执行定制绘制;
聚合视图:由一些其它视图对象组成。通常管理者子视图,但不负责执行定制绘制,图形绘制任务都交给了各个子视图。
步骤
选择超类。简单视图,View就是空白画布,而聚合视图则应该选择好合适的布局类;
继承选定的超类,并至少覆盖一个超类构造方法,或者在自定义的构造方法里,调用超类的构造方法;
覆盖其它关键方法,以定制视图行为。
注意:在布局文件使用android.view和android.widget包之外的自定义View的时候,必须使用全路径类名,这样布局inflater才能找到自定义View来解析。
处理触摸事件
一般设置触摸事件监听器:
public void setOnTouchListener(View.OnTouchListener l)
而自定义View可以直接覆盖:
public boolean onTouchEvent(MotionEvent event)
MotionEvent可以用来描述包括位置和动作的触摸事件,MotionEvent对象调用getAction()获得动作值。通常是以下四个动作:
ACTION_DOWN:用户手指触摸到屏幕;
ACTION_MOVE:用户在屏幕上移动手指;
ACTION_UP:用户手指离开屏幕;
ACTION_CANCEL:父View拦截了触摸事件。
onDraw(...)内的图形绘制
自定义View覆盖:
protected void onDraw(Canvas canvas)
Canvas类具有需要的所有绘制操作。其方法可指定绘制的位置和图形,例如线条、圆形、矩形等;
Paint类决定如何进行绘制操作。其方法可指定绘制图形的特征,例如是否填充图形,使用什么字体进行绘制等。
使用SQLite本地数据库
Android内置了操作SQLite的Java前端,该前端的SQLiteDatabase类负责提供Cursor实例形式的结果集。
Android提供了一个SQLiteOpenHelper帮助类,里面封装了一些存储应用数据的常用数据库操作,如创建、打开以及更新数据库等。
实现SQLiteOpenHelper的子类需要覆盖两个方法:
onCreate(SQLiteDatabase):为新建数据库创建表结构;
onUpgrade(SQLiteDatabase, int, int):执行迁移代码,实现不同版本间的数据库结构升级或转换。
SQLiteOpenHelper类有两个访问SQLiteDatabase实例的方法:
getWritableDatabase():需要可写模式数据库时使用;
getReadableDatabase():需要只读模式数据库时使用。
一般来说,对于既定的SQLiteOpenHelper类实例,两者的调用,返回的SQLiteOpenHelper类实例是一样的,但在某些情况,如磁盘空间满了,可能无法获得可写数据库,只能获得只读数据库。
查询SQLiteDatabase可返回描述结果的|Cursor实例。Cursor将结果集看作一系列的数据行和数据列,但仅支持String以及基本数据类型的值。
android权威指南十三章,《Android编程权威指南》第30~32以及第34章读书笔记相关推荐
- JavaScript DOM 编程艺术 (第二版)学习之3-4章
JavaScript DOM 编程艺术 (第二版)学习之3-4章 第三章 DOM 3.1 文档:DOM中的"D" 3.2 对象:DOM中的"O" 3.3 模型: ...
- 《Objective-C高级编程 iOS与OS X多线程和内存管理》读书笔记
<Objective-C高级编程 iOS与OS X多线程和内存管理>读书笔记 第一章:自动引用计数 自己生成的对象,自己所持有. 非自己生成的对象,自己也能持有 不再需要自己持有的对象时释 ...
- 第一章-Flink介绍-《Fink原理、实战与性能优化》读书笔记
Flink介绍-<Fink原理.实战与性能优化>读书笔记 1.1 Apache Flink是什么? 在当代数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如 ...
- python编程入门指南-《中小学生Python编程入门指南》3.4 字典
3.3 字典 字典的表达形式是这样的: d = {key1 : value1, key2 : value2 } 整个字典先是一对花括号{}包起来,内部是一对对的键值对(键值都成对了,就你还单身),每个 ...
- python编程入门指南-《中小学生Python编程入门指南》附录二
附录二是补充一些历史,补充计算机发展的历史常识,当故事来看吧. 1.冯·诺伊曼和第一台计算机 约翰·冯·诺伊曼,被后人称为"计算机之父",可见对计算机的诞生和发展起了决定性的作用, ...
- 《Unix网络编程卷1:套接字联网API》读书笔记
第一部分:简介和TCP/IP 第1章:简介 第2章:传输层:TCP.UDP和SCTP TCP:传输控制协议,复杂.可靠.面向连接协议 UDP:用户数据报协议,简单.不可靠.无连接协议 SCTP:流控制 ...
- 编程获取ip地址与mac地址的对应关系_[读书笔记]CSAPP:25[VB]网络编程1
视频地址: [精校中英字幕]2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com 课件地址: ...
- mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...
- 《ASP.NET Core 与 RESTful API 开发实战》-- (第10章)-- 读书笔记
第 10 章 部署 10.1 部署到 IIS ASP.NET Core 应用程序支持部署到 IIS 中,之后它将作为应用程序的反向代理服务器和负载均衡器,向应用程序中转传入的 HTTP 请求 默认情况 ...
最新文章
- Go Pro 半小时上手指南
- matlab m n size a,matlab—size用法总结
- a4b5笔记本大小对比_天津订做笔记本*价格多少【广通印务】
- pythonxlwt行居中_python3-xlwt-Excel设置(字体大小、颜色、对齐方式、换行、合并单元格、边框、背景、下划线、斜体、加粗)...
- 可扩展的编程语言——Scala
- Android实现图片的高效批量加载
- Azure PowerShell (13) 批量设置Azure ARM Network Security Group (NSG)
- CSS知识点梳理(二)
- endnote x8安装办法
- 【181128】VC++ MFC编写桌面放大镜工具源代码
- 论文研读--Masked Generative Distillation
- 圣光机大学计算机专业,25位师生顺利完成圣光机大学实习项目
- 震为雷:始于足下;艮为山:红灯刹车
- 一个开源vue网站博客,nuxt开源网站,前后端分离项目 1
- 【给小白玩的脚本】自动发歌词、发弹幕
- 第一周 一起走进摄影世界
- 机器学习100天(三十七):037 朴素贝叶斯-挑个好西瓜!
- 嵌入式软件工程师就业方向有哪些呢?
- Kali-msfdb-Postgresql报错排查处理
- ReplicaSet和Deployment
热门文章
- 【Paper-Attack】MGA:Momentum Gradient Attack on Network
- 手持gps坐标转换参数求解方法及在excel中的实现_地质填图手持GPS的校正方法
- php生成excel到服务器,yii phpexcel自动生成文件保存到服务器上
- 15_python基础—文件操作
- YApi--使用YApi的目的
- sap 客户独立需求作用_SAP 动态安全库存其中动态时间应用
- 字符的用意_北辰的符号意义 阅读答案
- fiddler chrome_fiddler抓包教程
- java file用法_Java File 类的使用方法详解(转)
- linux用户详细登录日志文件,Linux登录日志