比方说,我有一个WebClient
,需要每60分钟重新进行身份验证才能更新到最新状态。我有一个名为AsyncTask
的{{1}},它处理重新认证客户端所需的网络内容。每次用户执行某种需要ReauthenticateTask
的操作时,我都必须先对它进行身份验证,然后再继续。在大多数情况下,这是可行的,但是当用户长时间退出我的应用程序并重新进入时,我的应用程序崩溃是因为我尝试使用已过期(不再经过身份验证)的客户端进行呼叫。
我的问题是,我可以在哪里添加身份验证检查,以便可以在继续进行操作之前确认WebClient
是最新的?具体来说,我需要在每次用户登录时进行此检查,以确保安全。
我尝试将其添加到onResume()和onStart()中,但是我不确定如何使onStart()等待我的WebClient
完成之后再继续...
这是我在ActivityHome中尝试过的内容:
ReauthenticateTask
ReauthenticateTask:
@Override
protected void onStart() {
super.onStart();
// Need to make sure we are authenticated
if (!App.getAccountHelper().isAuthenticated()) {
new Utils.ReauthenticateTask(new ReauthenticateListener() {
@Override
public void UserAuthenticated() {
// resume onStart() safely
}
}).execute();
}
// else client is authenticated
}