第四章
1.Android中的5种数据存储方式及特点
Android中数据存储方式有5种:文件存储、SharedPreferences、SQLite数据库、ContentProvider、网络存储。
①文件存储:以I/O流形式把数据存入手机内存或SD卡,可以存储大数据。
②SharedPreferences:它本质上是一个XML文件,以Map<Object,Object>形式存入手机内容中。常用于存储较简单的参数设置。
③SQLite数据库:它是一个轻量级、跨平台的数据库。数据库中所有的信息都存储在单一文件内,占用内存小,并且支持基本SQL语法,是项目中经常被采用的一种数据存储方式。
④ContentProvider:又称内容提供者,是Android四大组件之一,以数据库形式存入手机内存,可以共享自己的数据给其他应用使用。相对于其他对外共享数据的方式而言,统一了数据访问方式,使用起来更加规范。
⑤网络存储:把数据存储到服务器,不存储在本地,使用的时候直接从网络获取,避免了手机端信息丢失以及其他安全隐患。
2.文件存储:
①最基本的数据存储方式,分为内部存储和外部存储
②通过I/O流的形式将数据存储到文档中
③存储位置:内存 SD卡
内部存储:
④读取文件内容:openFileInput
保存文件内容: openFileOutput
通过openFileInput()方法和openFileOutput()方法可以分别获取FileInpitStream对象和FileOutputStream对象
FileOutputStream openFileOutput(String name,int mode);
FileInputStream openFileInput(String name);
openFileOutput()用于打开应用程序中对应的输出流,将数据存储到指定的文件夹。
openFileInput()用于打开应用程序对应的输入流,用于从文件中读取数据。
其中,参数name是文件名,mode表示文件的操作类型,也就是读写文件的方式,它的取值有4种.(文件操作权限)
⑤文件操作权限:
MODE_PRIVATE:该文件只能被当前程序读写,默认的操作模式。
MODE_APPEND:该文件的内容可以追加,常用的一种模式。
MODE_WORLD_READABLE:该文件的内容可以被其他文件读取,安全性低,通常不使用。
MODE_WORLD_WRITEABLE:该文件的内容可以被其他程序写入,安全性低,通常不使用。
外部存储:(向外围设备存储/读取数据关键步骤)
a.获取SD卡根目录:
File SDPath=Environment.getExternalStorageDirectory();
b.写操作/输出流:(存储)
fos=new FileOutputStream(file);
读操作/输入流:(读取)
Fos=new FileInputStream(file);
c.在清单文件<manifest>节点中添加可读写外部设备的权限
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
3.XML:本地存储、网络传输
4.SharedPreferences存储数据的方式:
在其中存储的数据是以key/value键值对的形式保存在XML文件中
第五章
1.Android中自带的关系型数据库:SQLite数据库。
2.SQLite创建时调用的方法:onCreate(),数据库第一次被创建时才调用该方法。
3.SQLite升级时调用的方法:onUpgrade(),当数据库版本号增加调用。
4.SQLite支持的数据类型:NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)和BLOB(二进制对象)5种数据类型。但实际上可以将各种数据类型的数据保存到任何字段中,而不关系字段声明的数据类型,这是SQLite数据库最大的特点。(弱类型、无类型)
5.使用数据库帮助类SQLiteOpenHelper获得可写数据库的方法和可读数据库的方法:
①创建或打开一个只读的数据库:
public SQLiteDatabase getReadableDatabase()
②创建或打开一个读写的数据库:
public SQLiteDatabase getwritableDatabase()
6.查询数据库中的信息使用的接口:Cursor接口(游标接口)
7.ListView:列表控件。
适配器(Adapter)对listview进行数据适配,可以讲适配器理解为界面数据绑定。
第六章
1.内容提供者(ContentProvider)的主要功能:
是Android系统四大组件之一,用于保存和检索数据,是Android系统中不同应用程序之间共享数据的接口。(共享私有数据)
2.内容提供者的主要方法:
①onCreate():创建ContentProvider时调用。
②insert():根据传入的Uri数据。
③query():根据传入的Uri查询指定条件下的数据。
④update():根据传入的Uri更新指定条件下的数据。
3.ContentProvider、ContentResolver和ContentObserver之间的关系:
①ContentProvider:可以共享自己的数据给外部应用访问,要访问ContentProvider暴露的数据就要用到ContentResolver。而ContentObserver就相当于中间人的角色,它可以实时监听ContentProvider的数据是否发生变化,如果发生了变化就会触发onChange()方法,ContentResolver可以在onChange()方法中查询到哪些数据发生了变化再对数据进行操作。
第七章
1.创建广播接受者:
①广播接受者继承自BroadcastReceiver
②重写onReceive()方法
2.注册广播:
<receiver android:name=”cn.itcast.MyBroadcastReceiver”>
<inter-filter android:priority=”20”>
<action android:name=”android.provider.Telephony.SMS_RECEIVED”;/>
</inter-filter>
</receiver>
3. android:priority=”20”是该广播接受者的优先级,这个值越大代表的优先级越高。是整型数,理论范围-1000~1000。
4.广播的类型:有序广播、无序广播。
①无序广播:是一种完全异步执行的广播,广播在发出去之后,所有监听了这个广播事件的广播接收器几乎都会在同一时刻接收到这条广播,它们之间没有任何先后顺序可言。效率比较高但无法被截断。
②有序广播:是一种同步执行的广播,在广播接收之后,同一时刻只会有一个广播接收器能够接收到这条消息。广播接收器有先后顺序,可以拦截。
5.发送广播:
发送有序广播:
sendOrderedBroadcast(intent,null);
发送无序广播:
sendBroadcast(intent);
6.终止广播:
abortBroadcast();//拦截有序广播/取消广播
第八章
1.服务的含义:
服务(Service)是Android中的四大组件之一,它能够长期在后台运行且不提供用户界面。即使是用户切到另一应用程序,服务仍然可以在后台运行。
2.继承自Service
3.服务的注册:service结点
<service android:name=”cn.itcast.servicetest.MyService”/>
4.服务的生命周期:
①Call tostartService()→onCreate()→onStartCommand()→Service running→(the service is stopped by itself or a client)→onDestroy()→Service shut down。
②Call tobindService()→onCreate()→onBind()→Clients are bound to service→All clients unbind by calling unbindService()→onUnbind()→onDestory()→Service shut down。
5.Service的启动方式及特点:
①startService方式:服务会长期在后台运行,并且服务的状态与开启者的状态没有关系。调用者关闭,服务仍在后台运行,直到服务自身被关闭。不绑定,不能调用服务中的方法。
②bindService方式:当其他组件调用bindService方法时,服务被创建,接着客户端通过Ibinder接口与服务通信。绑定,可调用服务中的方法,这种方式开启的服务与开启者的状态有关,当调用者被销毁了,服务也会被调用。