广播机制

  1. 分类
      • 标准广播:完全异步执行的广播,在广播发出后,所有的BroadcastReceiver同时收到
      • 有序广播:同步执行的广播,同一时刻之后一个BroadcastReceiver可以收到
  1. 接收系统广播(手机开机完成会发出一条广播、电量发生变化会发出一条广播等等)
    1. 注册BroadcastReceiver
    2. 代码中注册(动态注册 — 程序启动时才能接收)
    3. AndroidManifest.xml中注册(静态注册 — 程序)
  1. 自定义广播
    1. 发送标准广播
    2. 接收
      1. 自定义广播都是隐式广播,发送标准广播时使用setPackage(packageName)将隐式广播变成一条显式广播,非原则静态注册的BroadcastReceiver无法接收到这条广播
    3. 发送有序广播
    4. 接收有序广播

      数据持久化

      三种方式
    5. 文件存储
        1. Context类提供了一个`openFileOutput()`方法,这个方法接收文件名和文件的操作模式两个参数。操作模式有MODE_PRIVATE(若文件存在则覆盖)和MODE_APPEND(文件存在就追加)。所有文件默认存储到/data/data/<package name>/files/下
        1. Context类提供了一个`openFileInput()`方法,只接收要读取的文件名一个参数,回去默认路径下加载这个文件,并返回一个流对象。
    6. SharedPreferences存储 — 使用键值对
      1. 获取SharedPreferences对象
        1. Context类中的getSharedPreferences()方法
          1. 接收两个参数:
            • SharedPreferences文件的名称,路径/data/data/<package name>/shared_prefs/目录下
            • 操作模式,之后默认的MODE_PRIVATE可选
        2. Activity类中的getPreferences()方法
          1. 只接收一个参数:操作模式。默认自动将当前Activity类型作为SharedPreferences文件名
        1. 调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象
        2. 向SharedPreferences.Editor对象中添加数据,使用putInt(), putT()方法。T表示数据类型。
        3. 调用apply()将添加的数据提交
        1. getT()
          接收两个参数
          • 找不到键的默认值
    7. SQLite - SQLiteOpenHelper抽象类
      1. onCreate() onUpgrade()
      2. 创建数据库
        1. 下面两种方法均可创建或打开一个数据库,并返回一个可对数据库进行读写操作的对象。数据库文件会存放在/data/data/<package name>/databases/下
          • getReadableDatabase(),若数据库不可写入,返回的对象会以只读方式打开数据库
          • getWritableDatabase(),若数据库不可写入,则抛异常
      3. 升级数据库

ContextProvider

 

多媒体

Notification

  1. 创建通知渠道 - Android version ≥ 8.0
    1. 通知渠道就是每条通知都要属于一个对应的渠道。每个应用程序都可以自由地创建当前应用拥有哪些通知渠道,但是这些通知渠道的控制权是掌握在用户手上的。用户可以自由地选择这些通知渠道的重要程度,是否响铃、是否振动或者是否要关闭这个渠道的通知。
    2. NotificationManager
    3. NotificationChannel
  1. 通知的用法
    1. 通知的用法还是比较灵活的,既可以在Activity里创建,也可以在BroadcastReceiver里创建,当然还可以在后面我们即将学习的Service里创建。
  1. 通知可点击
    1. 可以把PendingIntent简单地理解为延迟执行的Intent
  1. setStyle()

调用摄像头和相册

  • 摄像头
      1. 创建储存图片的对象
      1. 隐式intent调用拍摄
      1. 在结果回调onActivityResult()中处理图片
  • 选择相册图片

播放多媒体文件

  • 音频
  • 视频

Service

badge