总结

作者: 小赵不在 | 来源:发表于2020-08-08 13:55 被阅读0次
    1. 开屏页:引导用户和停留几秒是为了做初始化工作

    2. 为什么在开屏页或者引导页把用户信息获取出来?
      因为进入主页的时候就要显示用户的头像或者名称(与用户相关的信息)

    3. 如果没有引导页,那进入主页后加载信息的时间就会变长

    4. 如果启动页完成之后进入主页,信息没有出来,用不用断开网络请求?
      如果不终止,把页面关了以后,还会获取用户信息,然后存在本地
      按返回键来控制断不断请求,如果按了就说明要断开请求,退出应用
      监听一下按返回键就是断开请求了,没按就是没断
      不能用自动解绑的方式,因为自动解绑不会区分你是怎么关闭的

    只能拿到disposable对象,想办法从P层里拿到disposable对象,提供一个get方法

    1. 开屏页存在也是一种赚钱的方式:广告(广告会提前缓存好)

    2. 版本升级:如果读取出来的版本号和当前的版本一样就不升级,如果不一样就升级,再弹一次引导页
      区分出来是第一次还是升级还是清缓存了

    有的要求再启动页要弹一个popwindow
    popwindow不能按返回键关闭
    pop的穿透事件(pop不能是全屏的) 要想让那个它不穿透,pop设置全屏,给ContentView里边设置白色背景。通过给window设置透明度来实现穿透效果
    实现pop半透明:①让pop全屏 ②给他设置其他颜色
    pop弹一个用户协议:同意——>进行下一步 (下次启动就不是第一次启动了,就不会弹了,直接出来引导页) 不同意——>终止(下次启动还会弹)

    在Model层判断一下lifecycleProvider不等于空的情况下,就代表了可以把请求取消掉,如果是空,就代表不取消。使用lifecycleProvider会绑定生命周期,会有ActivityEnvent.destroy方法

    启动页容易黑屏白屏,设个背景

    为什么要把Rxjava解绑?一因为内存泄漏,二是减少不必要的网络请求
    为什么会内存泄漏:因为V层对P层的引用,P层对V层的订阅Rxjava还有存留,内存就会一直泄露着
    网络请求取消不了:一在自己解绑的时候拿到model层传来的disposiable对象,用disposable进行dispose操作,二是多个网络请求的时候,直接从容器里移除,没有移除的就是剩下没有回来的,进行取消操作。写一个ArrayList,每次请求一个,就把disposiable对象放在ArrayList里,然后请求回来了,就从ArrayList里移除,检查还有多少没有回来的,没有回来的直接dispose掉。第二种方案使用lifecycle第三方的工具,方便,能自动解绑,只需要自己的act或fragment继承他的RxFragment,Rx有一个compose操作符,把act或fragment传过去,能够指定一个生命周期

    相关文章

      网友评论

          本文标题:总结

          本文链接:https://www.haomeiwen.com/subject/wyqhdktx.html