doInTheBackground 不等待功能完成?

doInTheBackground doesn't wait for function to finish?

我正在尝试使用 android 中的 Stormpath 框架组合登录屏幕。我使用了 android studio 中提供的标准登录屏幕,并且只修改了 UserLoginTask。我的问题是它似乎没有等待我对 Stormpath 的调用完成。一旦 class 被调用,它就会直接进入执行 doInBackground,然后直接进入 onPostExecute。这是我的 class:

    public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {

        private final String mEmail;
        private final String mPassword;
        private boolean loginResult;
        String errorMessage;


        UserLoginTask(String email, String password) {
            mEmail = email;
            mPassword = password;
        }

        @Override
        protected Boolean doInBackground(Void... params) {
            Stormpath.login(mEmail, mPassword, new StormpathCallback<Void>() {
                @Override
                public void onSuccess(Void aVoid) {
                    Log.d("debug", "sucess");
                    loginResult = true;
                }

                @Override
                public void onFailure(StormpathError error) {
                    errorMessage =  error.message();
                    Log.d("debug", "Error: " + error.message());
                    loginResult = false;
                }
            });
            return loginResult;
        }

        @Override
        protected void onPostExecute(final Boolean success) {
            mAuthTask = null;
            showProgress(false);

            if (success) {
                finish();
            } else {
                Toast.makeText(LoginActivity.this, errorMessage, Toast.LENGTH_SHORT).show();
              mPasswordView.setError(getString(R.string.error_incorrect_password));
               mPasswordView.requestFocus();
            }
        }

        @Override
        protected void onCancelled() {
            mAuthTask = null;
            showProgress(false);
        }
    }

由于 Stormpath.login() 使用回调,很可能它已经在后台线程上进行网络调用,并且 returns 您可以通过回调获得结果。如果是这种情况,那么您真的不需要 AsyncTask.