第一行代码 阅读笔记(5-9章)

  • 作者: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

多种方式,书上主要写JSONObjectGSON还有一种常用的为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() );

完结撒花!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,404评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,958评论 19 139
  • 侄子四岁的时候,老妈会给他读故事,有天她惊奇地跟我们说,我们宝贝太厉害了,所有封面上的字他都认识! 我跟嫂子将信将...
    OQ熊阅读 168评论 0 0
  • 文/景风 第五十一风 7月21日 坏消息。 可我爱你。 沈小北。 第五十二风 7月23日 越是难过越沉默。爱的越深...
    景阿风阅读 397评论 0 0
  • 有你才叫幸福,只要和你在一起什么都让我幸福到死去。
    荆棘bq阅读 177评论 0 1