客户端基础知识1|青训营笔记

67 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第2天。 what:是什么 why:为什么 how:怎么样怎么样才能学到更多关于课程的东西

什么是程序

image.png 如果是以程序员的角度就是代码+资源,为的是改变世界,经验和技术能让我们更好地学习

image.png

基础组件

界面组件:activity+fragment

activity是一个界面容器,而为什么要设计这个呢?

  1. 前台交互
  2. 程序入口
  3. 布局容器

image.png 如果是要以此场景设计,需要有相册展示页 相册图片页和图片大图页

我们设计页面 1.首先是在android.manifest中进行声明

image.png 2.声明布局文件

image.png

image.png 用逻辑进行绑定 注册-》布局-》绑定

image.png 需要注意的是为什么要用viewPager呢,是因为这适合左右滑动的情况。

activity的生命周期:

image.png 在onstart才会可见,在android5.0之前只能在onpause中进行保存数据的操作,之后能在onstop中进行数据的保存操作。但是不一定会走到onDestroy

image.png 1为部分遮挡 2为遮挡回复

image.png 如果页面时全遮挡,那么他会走到onstop然后恢复的时候需要走onstart

  • 配置改变的场景:比如浏览屏幕时突然变成横屏的模式(1)销毁:resumed-onSaveInstanceState()-onPause()-onStop

###小结

image.png

拨打段话时会发生crash

这个crash可能是页面丢失所以数据空指针的问题所以需要 1.判断是否为空指针 2.在onSaveInstanceState中保存数据,在onRestoreInstanceState中恢复数据

启动模式

1.默认模式:允许重复 image.png 2.singleTop 如果将要启动的目标activity已经位于task栈顶时,系统不会重新创建目标activity实例,而是直接复用已有的activity实例。

image.png 3.singleTask 不允许同一个栈重复,如果这个activity在task栈里面没有,就直接进行创建,如果在栈顶,就不再进行创建,如果不在栈顶的话,就把activity上的全部activity全部pop出去使之成为栈顶

image.png 4. singleInatance 整个系统不允许重复,如果调用该activity的话会把activity推到前台,要注意的是含该activity的task就只会有这个task,并且这个task在栈顶。

image.png

启动模式小结

image.png

###Fragment(轻量级activity)

  • 为了解决activity碎片化问题

  • Fragment的特点:速度快,activity的产生需要系统内核的调用,消耗的时间比较多

  • 启动:onAttach()-onCreate()-onCreateView() -onActivityCreated()-onStart()-onResume() -Resumed

  • 退出:Resumed-onPaused() -onStop()-onDestoryView() -onDestory()-onDetach()

  • 部分覆盖:Resumed-onPause()-Paused

  • 部分遮挡恢复:Paused-onResume()-Resumed

  • 完全覆盖:Resumed-onPaused()-onStop()-onDestroyView()

  • 完全遮挡恢复:onCreateView()-onActivityCreated()-onStart()-onResume()-Resumed

  • 注:Fragment生命周期可以通过FragmentTransaction.setMaxLifecycle手动干预(如:直接设置在onPause()就结束Fragment生命周期)