AsyncTask doInBackground方法未调用

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

我正在AsynTask类的doInBackground方法中使用cognitouserpool代码。但是我的方法不是调用。我已经尝试通过使用Log检查它。它不起作用。

AsyncTask

public class AWSInitiator extends AsyncTask<Void, Void, Void> {
    private Context context;
    public AWSInitiator(Context context) {
        this.context = context;
    }
    @Override
    protected Void doInBackground(Void... voids) {
        CognitoUserPool.......
    AuthenticationHandler authenticationHandler = new AuthenticationHandler() {
        Log.i("ACCESS_TOKEN", userSession.getIdToken().getJWTToken());
        ...
    }
}

AnotherClass.java

AWSInitiator awsInitiator = new AWSInitiator(AppSetting.getInstance().getApplicationContext());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    awsInitiator.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
     awsInitiator.execute();
}

但是日志未显示。我在编码中做错什么了吗?在对AWS服务器进行POST调用时,我确实需要令牌作为标头传递。但它返回null,因为doInBackground()无法正常工作

android android-asynctask
2个回答
1
投票

您实际上并没有在doInBackground方法中打印日志。您正在尝试在令牌提取完成后以回调方法打印它。我假设您的回调从未被调用过,实际上是在打印日志。

Log.i("ACCESS_TOKEN", userSession.getIdToken().getJWTToken());

为了验证我在说什么print,请在外部添加新的Log语句,您应该看到日志已在控制台中打印。像:

Log.i("ACCESS_TOKEN", "Test logs");

0
投票

您没有调用execute()方法。

AWSInitiator awsInitiator =

新的AWSInitiator(AppSetting.getInstance()。getApplicationContext())。execute();

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