令牌过期时如何注销Android LiveData

时间:2018-12-10 05:53:10

标签: android android-architecture-components android-livedata

我正在开发一个Android应用程序,问题是令牌过期时,我需要注销用户。现在,我需要检查所有片段中的令牌是否过期。那么有什么办法可以让我从集中的位置执行此任务。

2 个答案:

答案 0 :(得分:0)

您是否使用retrofit?如果是这样,您可以添加一个自定义Interceptor,它会拦截每个响应并通过重定向到登录来处理401

您还可以定义一个SessionHandler,它需要一个context,例如,从Interceptor您将调用sessionHandler.onSessionExpired()。希望你能想到

答案 1 :(得分:0)

就我个人而言,我更喜欢使用pub / sub模式解决此类问题。通常,当您发现令牌已过期(例如在拦截器中)时,将引发一个事件(命名会话已过期)。另外,还有一些使用者(例如,所有其他活动都对其进行了扩展的BaseActivity)捕获了该事件并对其做出反应(根据您的问题,重定向到LoginActivity)。要实现此方法,您既可以使用一些现成的解决方案(例如greenrobot),也可以使用LiveData进行开发。