一、碎片(Fragment)
- 碎片是一种可以嵌入在活动当中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。
- 动态添加碎片主要分为 5 步。
1、创建待添加的碎片实例。
2、 获取到 FragmentManager,在活动中可以直接调用 getFragmentManager()方法得到。
3、开启一个事务,通过调用 beginTransaction()方法开启。
4、向容器内加入碎片,一般使用 replace()方法实现,需要传入容器的 id 和待添加的碎
片实例。
5、 提交事务,调用 commit()方法来完成。
二、碎片的活动周期
-
运行状态
当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行
状态。 -
暂停状态
当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。 -
停止状态
当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态。或者通过调用 FragmentTransaction 的 remove()、replace()方法将碎片从活动中移除,但有在事务提交之前调用 addToBackStack()方法,这时的碎片也会进入到停止状态。总的来说,进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。 -
销毁状态
碎片总是依附于活动而存在的,因此当活动被销毁时,与它相关联的碎片就会进入到销毁状态。或者通过调用 FragmentTransaction 的 remove()、replace()方法将碎片从活
动中移除,但在事务提交之前并没有调用 addToBackStack()方法,这时的碎片也会进入到销毁状态。 -
1、onAttach()
当碎片和活动建立关联的时候调用。 -
onCreateView()
为碎片创建视图(加载布局)时调用。 -
3、onActivityCreated()
确保与碎片相关联的活动一定已经创建完毕的时候调用。 -
4、 onDestroyView()
当与碎片关联的视图被移除的时候调用。 -
5、onDetach()
当碎片和活动解除关联的时候调用。
三、四大组件中的-广播
广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。
- 动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。
- 静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在触发时也会对它起作用。
四、文件存储
- Context 类中提供了一个 openFileOutput ()方法,可以用于将数据存储到指定的文件中。
- 类似于将数据存储到文件中,Context 类中还提供了一个 openFileInput()方法,用于从文件中读取数据。
- SharedPreferences 是使用键值对的方式来存储数据的。也就是说当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来
- 首先得到了 SharedPreferences 对象之后,就可以开始向 SharedPreferences 文件中存储数据了,主要可以分为三步实现。
1、调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象。
2、向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用
putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。
3、 调用 commit()方法将添加的数据提交,从而完成数据存储操作。 - SharedPreferences 对象中提供了一系列的get方法用于对存储的数据进行读取,每种get方法都对应了SharedPreferences. Editor 中的一种 put 方法,比如读取一个布尔型数据就使用 getBoolean()方法,读取一个字符串就使用 getString()方法。
- SQLite没有数据类型。
首先要建一个继承于SQLiteOpenHelper的类,实现其中的至少一个构造方法和两个方法onCreate()、onUpdate()。在onCreate()中用execSQL()方法创建数据库,创建完的数据库在data/data/项目名称/databases路径下,往SQLite的增删改查分别需要用到insert()、delete()、update()、query()方法。