基础

  • 资源(非Java)
  • Manifest文件:声明sdk、application(activity、service、receiver、provider)
  • Strings文件:字符串
  • Layout文件:布局文件
  • R文件:根据资源自动生成,便于java文件引用(R.资源名)

  • Activity(Java类)

  • 在Manifest中注册:name=类名
  • 定义生命周期的回调方法:onCreate、{onStart、[onResume、onPause]、onStop、onRestart}、onDestroy
  • 加载UI:使用setContentView(Layout)
  • ActivityStarter(Java方法)
  • 准备意图:创建intent并设置action、category等属性
  • 发送启动活动的意图:使用startActivity(Intent)

  • Service(Java类)

  • 在Manifest中注册:name=类名
  • 定义生命周期的回调方法
    • 启动模式:onCreate、onStart、onDestroy
    • 绑定模式:onCreate、onStart、[onBind、onUnbind、onRebind]、onDestroy
  • 注:
    • Service捕获并过滤意图(可以是自带的意图,也可以是自定义的意图)
    • 启动模式和绑定模式的区别
    • 启动模式:创建一次,永久运行,手动Destroy后关闭
    • 绑定模式:创建一次,被绑定时才运行,取消绑定时仅暂停,手动Destroy后关闭
  • ServiceBinder(Java方法)
  • 准备意图:创建intent并设置action、category等属性
  • 发送启动服务的意图:使用startService(Intent)
  • 发送绑定服务的意图:使用bindService(Intent)

  • BroadcastReceiver(Java类)

  • 在Manifest中注册:name=类名
  • 定义回调方法:onReceive
  • 注:Receiver捕获并过滤意图(可以是自带的意图,也可以是自定义的意图)

  • BroadcastSender(Java方法)

  • 准备意图:创建intent并设置action、category等属性
  • 发送广播的意图:使用sendBroadcast(Intent)

  • ContentProvider(Java类)

  • 在Manifest中注册:name=类名,还需要给出ContentProvider类的路径
  • 内容URI字符串:content://\//\
  • 定义生命周期的回调方法:onCreate
  • 定义增删改查的回调方法:query、insert、delete、update、getType

  • Fragment(Java类)

  • 定义生命周期的回调方法:onAttach、onCreate、onCreateView、onActivity
  • 注:

    • Fragment用于分屏时不同程序之间各自的生命周期
    • 当分屏第一次初始化时onAttatch、onCreate、onCreateView、onActivityCreated
    • 当分屏可见时调用onStart
    • 当手指离开分屏1并到达分屏2时,会将Frag1暂停,并恢复Frag2
    • 片段分为:单帧片段、列表片段、片段过渡
  • Intent(Java对象)

  • 属性:Action、Data、Category、Extras、Flags、ComponentName
  • 方法:Intent.putExtra(键,值)、Intent.putExtras(Bundle)
  • 注:
    • 显式意图和隐式意图的区别
    • 显式意图:指定组件类型/名,等价于通过startActivity、startService等方法,给对应类型的组件发送意图
    • 隐式意图:不指定组件类型/名,等价于发给所有类型的组件
  • IntentFilter(非Java)
  • 放置在activity、service、receiver、provider等标签内部
  • 子标签:action、category等