-
重写系统Back键,实现自己的逻辑
/** * https://www.jianshu.com/p/d54cd7a724bc * Android中在按下back键时会调用到onBackPressed()方法, * onBackPressed相对于finish方法,还做了一些其他操作, * 而这些操作涉及到Activity的状态,所以调用还是需要谨慎对待。 */ override fun onBackPressed() { // super.onBackPressed(); mSharedViewModel.closeSlidePanelIfExpanded.value = true // 触发改变 } -
判断Activity是否展现了,真正呈现给用户了
-
重写系统回调函数:onResume,这个其实是不行的
-
要用这个:onWindowFocusChanged
/** * 详情看:https://www.cnblogs.com/lijunamneg/archive/2013/01/19/2867532.html * 这个onWindowFocusChanged指的是这个Activity得到或者失去焦点的时候 就会call。。 * 也就是说 如果你想要做一个Activity一加载完毕,就触发什么的话 完全可以用这个!!! * entry: onStart---->onResume---->onAttachedToWindow----------->onWindowVisibilityChanged--visibility=0---------->onWindowFocusChanged(true)-------> * @param hasFocus */ override fun onWindowFocusChanged(hasFocus: Boolean) { super.onWindowFocusChanged(hasFocus) if (!isListened) { mSharedViewModel.timeToAddSlideListener.value = true // 触发改变 isListened = true } }
-
-
防止抖动:界面持续更新,例如下载的进度条
- 虽然没有加载图片,但是还是会有内存开销较大的问题
- 结论:当界面更新十分频繁时用Observable(不能观察生命周期)不用LiveData
- 节约运行内存
- 因为LiveData开销很大
- Observable是属于DataBinding的,这个东西比LiveData出现早,优化历史长
- DataBinding 与LiveData功能差不多
-
MVP 的缺点
- 概述:View层访问P层,P层通过服务器拿到模型数据,通过接口回调的方式返给View层
- 问题:接口地狱
-
DataBinding出现问题:
- 错误排查:一般都是布局写错了
- 报错类型:一般都是类生成错误
-
处理Android Studio异常信息乱码:
- 在VCS中进行配置就行了
-
清除Android Stuido缓存:
- 删掉build文件夹,
- 也可以点那个大象,然后clean一下
-
项目中右边侧边栏一直在Analazying:
Android ButterKnife Zelezny插件和android studio 4.X版本不兼容,禁用掉就可以了:www.jianshu.com/p/79ced5c3b…
修改kotlin插件版本,以及gradle版本即可
-
解决source insight 代码跳转时出现 symbol not found 解决办法:blog.csdn.net/qq_39687342… ,
-
这个工具怎么显示行号?www.baidu.com/baidu?tn=mo…
-
异常处理
-
异常描述:
-
解决办法:重启AS或者点一下那个大象
-
-
Android Studio修改虚拟机内存大小
- help--->Edit Custom VM Options
-
也可以在这里改
- Android Studio的JDK在哪里
-
异常处理:
- 异常描述:Could not set process working directory to ‘ ‘: could not set current directory (errno 3)
- 解决办法:可以点一下那个大象或者Reload一下
-
在使用Retrofit配合Kotlin实现登录功能的时候,会有一些问题
-
线程切换与setValue
-
一般情况下,都是仓库层返回一个Data,拿给ViewModel实现数据驱动UI更新;但是用了协程就要注意三个点
- 作用域的问题:看他现在在哪个线程里面
- 因为接口层里面定义的登录标准时是被suspend进行包裹了的,那么仓库层的调用者也要被suspend包裹(解决颜色问题)
- 因为这个仓库层,实际上是一个伪挂起,在调用了之后,它会进行一次线程的转换,最终会切回主线程
-
-
异常处理:
- 异常描述:Execution failed for task ':app:kaptDebugKotlin'.
- 问题解决:修改kotlin版本,但是这个效果不好,可能会触发新的异常
-
使用Android Studio单独编译java程序
- file--->new--->Moudle-->选择java,等待就可
-
Android Studio在运行框内,仅查看运行结果
-
怎么取出图片中的颜色的十六进制代码
- 借助PS,用哪个吸管就行了
-
如何制作应用图标
-
选择合适的图片,放到电脑某个位置(待会要使用这个路径)
-
file--->new--->Image Asset
-
选中前景(ForegroundLayer)
-
选择图片,调整下面的进度条,保证图片都在安全区域内即可
细节:
- 不要去改那个名字(ic_luancher),新生成的应用图标会对其进行覆盖的
- 图标是以xml形式存放在这mipmap目录下的,这个会自己适配(mask是手机厂商的事情)
- 可能会报错,原因就是在清单文件中应已经指定了icon,改一下就行了
-
-
如何使用gitee上传文件夹
- 使用Gitee上传文件夹:blog.csdn.net/weixin_4833…