这是记录会员服务开发时的一些Lib,仅供再次翻阅。
1.锁屏,解屏时的生命周期
在做指纹解锁时,需要判定当前的屏幕状态是不是锁屏。
按照我的理解,指纹解锁应该是传感器,使用它需要获取Authenticate。当锁屏的状态下,需要两次指纹解锁,锁屏到开屏时的指纹解锁,以及我们程序的指纹解锁。但是如果这个Authenticate被系统获取,那么软件中需要重新获取;如果Authenticate被软件获取,系统就不能用指纹开锁。所以监听了屏幕状态,在锁屏时释放Authenticate,解屏时获取Authenticate。
关于锁屏解屏时的生命周期可看这篇文章:关于锁屏和回到桌面的activity生命周期的疑问
在onPause() 和 onResume() 方法中分别释放Authenticate和获取Authenticate。
2.异常
异常信息:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
错误原因:在adapter中设计点击Intent跳转activity事件,传入的Context不是activity的context
解决办法:intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
FLAG_ACTIVITY_NEW_TASK:默认的跳转类型,它会重新创建一个新的Activity,不过与这种情况,比如说Task1中有A,B,C三个Activity,此时在C中启动D的话,如果在AndroidManifest.xml文件中给D添加了Affinity的值和Task中的不一样的话,则会在新标记的Affinity所存在的Task中压入这个Activity。如果是默认的或者指定的Affinity和Task一样的话,就和标准模式一样了启动一个新的Activity.
3.tips
一个项目,有很多module,或者lib,或者aar引用,记得使用的资源文件名,特别是layout,mipmap,drawable文件名,不要重名。
否则就会出现,多module时,依赖包加载的仍是主module的资源
4.actionBar相关
actionBar有一个setCustomView( int layoutId )函数,用于自定义actionbar样式。注意下高度和侧边。
5.tablayout
( 1 ) 改变选中不同tab时的背景颜色
tablayout改变字体颜色倒是方便,