如何在Java中让服务器请求持续工作?

问题描述 投票:0回答:1

在我用 Java 开发的移动应用程序中,有两个名为 ChatActivity 和 MainActivity 的活动。当用户登录时,他或她会被重定向到 ChatActivity。但是,如果用户在 ChatActivity 中时无法验证用户的令牌,则必须立即将用户自动从 ChatActivity 重定向到 MainActivity。

对于令牌验证过程,我需要向服务器发送 API 请求,并在用户每次进入 ChatActivity 时验证令牌。我应用了我所说的,但存在一些问题。例如,onCreate 方法中的 API 代码仅在用户打开应用程序时起作用,即不会不断发送请求。

我希望令牌验证过程像现代应用程序中一样连续快速地发生,也就是说,如果用户的令牌无法验证,我希望它立即重定向到MainActivity。我该如何实现这一目标?这是一个示例代码:

    protected void onCreate(Bundle savedInstance) {
       super.onCreate(savedInstance);
       setContentView(R.layout.activity_chat);
       OkHttpClient client = new Client();
       client.newCall(/* ... */).execute();
       // Other fields...

       if (!isTokenVerifed) {
           startActivity(new Intent(ChatActivity.this, MainActivity.class));
           finish();
       }
   }
}

我的请求代码只能使用一次。

java android api kotlin request
1个回答
0
投票

你根本不应该这样做。您的令牌如何未经验证 - 最有可能的时间。因此,将 expiresAt 时间与令牌一起发送,设置一个计时器,并在到期时将其注销。如果您担心从服务器手动注销,请实施推送消息(对于聊天应用程序无论如何都需要它),并在通过推送发送注销消息时将其注销。不断轮询以检查他们是否已注销会浪费客户端和服务器上的网络资源。

© www.soinside.com 2019 - 2024. All rights reserved.