# SessionManager **Repository Path**: eachann_lee/SessionManager ## Basic Information - **Project Name**: SessionManager - **Description**: Android的用户状态管理器,可以在项目中全局调用用户信息、判断用户登录状态以及退出登录操作 - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-03-27 - **Last Updated**: 2022-02-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # session 存储管理库 ### 添加依赖 ```bash allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { implementation 'com.gitee.eachann_lee:SessionManager:1.0.7' } ``` ### 存储数据对象:Serializable ```kotlin SessionManager.setSession(Token("hello"))//Token :Serializable ``` ### 获取对象 ```kotlin SessionManager.getSession(Token::class.java)?.token ``` ### 观察session变化 ```kotlin SessionManager.addSessionStateChangedListener(object : SessionStateChangedListener{ override fun onSessionStateChanged(session: Any?) { if(session is Token) { Log.i("MainActivity", "onSessionStateChanged:" + session.token) } } }) ``` ### 移除session ```kotlin //移除监听 SessionManager.removeSessionStateChangedListener(listener) //清空所有监听 SessionManager.clearListeners() //清空所有session SessionManager.clearAll() ``` ### 基于策略模式实现自定义存储 > 参考PreferencesSessionManager实现自定义存储 > > SessionManager.init(CustomManager())//实现自定义CustomManager后,重新init() ### 历史版本 - 1.0.7:移除存储耗时的打印日志 - 1.0.6:修复bug [I1ELRZ](https://gitee.com/eachann_lee/SessionManager/issues/I1ELRZ) - 1.0.5:修复bug [I1ELK1](https://gitee.com/eachann_lee/SessionManager/issues/I1ELK1) - 1.0.4:增加高频访问缓存机制,提升读取性能 ```kotlin //设置缓存触发频率,默认为2次 fun setHighFrequency(@IntRange(from = 1) count: Int) ``` - 1.0.3:修复bug [I1E1RL](https://gitee.com/eachann_lee/SessionManager/issues/I1E1RL)