让应用程序等待异步任务完成后再继续/启动吗?

时间:2018-10-10 15:54:17

标签: android android-activity android-asynctask

比方说,我有一个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
}

0 个答案:

没有答案