首页 文章

如何在令牌过期时注销Android LiveData

提问于
浏览
0

我正在开发一个Android应用程序问题是当令牌过期时,我需要注销用户 . 现在我需要在我的所有片段中检查令牌过期 . 那么有什么方法可以让我从集中的位置完成这项任务 .

2 回答

  • 0

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

    您还可以定义 SessionHandler ,需要 context ,而 Interceptor 则可以调用 sessionHandler.onSessionExpired() . 希望你能得到这个想法

  • 0

    从代码中的任何位置通知您的登录处理程序类该令牌已过期的最简单方法是使用LocalBroadcastManager发送本地广播,如下所示

    LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(CUSTOM_ACTION_NAME));
    

    让你提到上面传递给Intent Constructor的CUSTOM_ACTION_NAME作为类中定义的常量 . 然后最后在LoginHandler类中注册接收器以获得有关该事件的通知,如下所示

    BroadcastReceiver tokenExpiredReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                //your code goes here to update the UI when token is expired
            }
        };
    

    希望这有助于您完成任务 . 所以这是一个快速的解决方案,您可以满足您的要求 .

相关问题