- 作者:Mr.Egg
- 状态:完成
- 转载请注明
一.第五章
(本章只理解了大概)
1.广播机制
广播分为标准广播与有序广播
标准广播直接分发到所有广播接收器
有序广播依次分发到各个接收器
二.第六章
1.将数据存入/取出文件
两种模式MODE_PRIVATE(覆盖 默认用此)和MODE_APPEND(追加),其余两种在4.2版被废弃不做介绍。
注意:读取权限的申请?这里没提到,不过可能需要SD卡的读取权限。
2.SharedPreferences
调用Activity中的getSharedPreferences("name",模式)方法获取到SharedPreferences.Editor对象
通过设置 key , value 方式存储键值对,最后调用apply方法保存。
同理于取,不做介绍。
3.SQLite
新建类继承于SQLiteOpenHelper,在onCreate方法中新建表
在onUpgrade方法中更新表,每次更新都会导致数据库数据清除,通过传入比之前更大的版本号自动调用onUpgrade方法。
添加数据
调用getWritableDatabase()方法获取数据库db
实例化ContentValues插入键值对后再调用db直接插入
其他不做介绍
同样也可以直接使用sql语句操作数据库
eg.db.execSQL("delete from xx where number > ?",new String[]{"500"});
4.LitePal 数据库开源操作库
(重点) 同样的有GreenDao
首先导入库,'org.litepal.android.core:1.3.2'
接着在main目录下新建assets目录下新建litepal.xml
<litepal>
<dbname value = "name"></dbname>
<version value = "1"></version>
<list>
</list>
<litepal>
接下来配置** AndroidManifest.xml** ,在application标签下面的 android:name="org.litepal.LitePalApplication"
使用
首先,新建对应表的实体类(类--->表 一个类对应一张表)。
接着在litepal.xml中配置
<litepal>
<dbname value = "name"></dbname>
<version value = "1"></version>
<list>
<mapping class = "com.example.xxx.class"></mapping>
</list>
<litepal>
eg.
创建数据库 Connector.getDatabase()
插入数据
Class xx = new Class();
....(设置数据)
xx.save();
同理于其他 不予列举
三.第七章
1.内容提供器
内容提供器是不同应用之间共享数据的渠道
2.Android权限机制
Android权限分为普通权限和危险权限,普通权限由系统之间授权,危险权限需要示意用户是否给予权限。
四.第八章
本章讲调用系统组件(相机,相册等),未仔细阅读。
五.第九章
注意本章要申请网络权限
1.WebView使用方法
2.HTTP协议访问
HTTP协议访问网络属于底层实现,现在常用封装好的库来代替 ,但也必须了解。
首先,网络属于耗时操作,只能在子线程中运行
几个主要的点
Url url = new Url("");
HttpConnection connection = new HttpConnection ();
connection .setRequestMethod("GET/POST");
connection .setConnectionTimeout(8000(ms));
connection .setReadTimeout(8000(ms));
InputStream in = connection.getInputStream();
BufferedReader reader = new BufferedReader( new InputStreamReader(in) );
//处理reader就可以了
3.使用OkHttp
okhttp是Square公司的开源网络库,类似的有Retrofit。
主要操作
OkHttpClient client = new OkHttpClient();//请求主体
Request request = new Request.Builder() //request对象
.url("url")
.builder();
Response response = client.newCall(request).execute(); //发送请求
//-------------------------Post提交------------------------------------//
RequestBody requestBody = new FormBody.Builder()
.add("key","value")
.builder();
Request request = new Request.Builder()
.url("url")
.post(requestBody )
.builder();
4.解析XML
三种方式:Pull,SAX,DOM(此书未提及)
5.解析Json
多种方式,书上主要写JSONObject,GSON还有一种常用的为FastJson
由于我习惯用Gson所以这里我稍微介绍下Gson。
用Gson解析Json首先要先根据Json构造对应的实体类,如果用Android Studio的话可以添加插件GsonFormat根据Json自动生成对应的实体类。
其次是用法
Class JsonClass = new Gson().fromJson(String,Class.class);
如果的List的话较为麻烦 (此处凭记忆打的可能有错,具体请百度)
List<T> list = new Gson().fromJson(json,new TypeToken< List<T> >() {}.getType() );