前言
Jetpack Compose一般我们同时也会使用路由进行页面跳转,接口请求的时候,我们想用户信息失效的时候,退出到登录页面,直接在页面监听,就太麻烦和逻辑冗余了。
推荐的做法是
全局状态管理 + 统一网络拦截 + 导航控制
全局状态管理
1 | import androidx.compose.runtime.mutableStateOf |
网络拦截
接口拦截器中改变状态
1 | import android.os.Handler |
设置拦截器
1 | if (!::commonRetrofit.isInitialized) { |
导航控制
路由配置中监听登录状态变化,退出登录。
通过监听状态,只有状态变化的时候才会退出登录,防止多次触发。
1 |
|
核心代码
1 | val authManager = AuthManager.getInstance() |