我正在AsynTask类的doInBackground方法中使用cognitouserpool代码。但是我的方法不是调用。我已经尝试通过使用Log检查它。它不起作用。
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());
...
}
}
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()无法正常工作
您实际上并没有在doInBackground方法中打印日志。您正在尝试在令牌提取完成后以回调方法打印它。我假设您的回调从未被调用过,实际上是在打印日志。
Log.i("ACCESS_TOKEN", userSession.getIdToken().getJWTToken());
为了验证我在说什么print,请在外部添加新的Log语句,您应该看到日志已在控制台中打印。像:
Log.i("ACCESS_TOKEN", "Test logs");
您没有调用execute()方法。
AWSInitiator awsInitiator =
新的AWSInitiator(AppSetting.getInstance()。getApplicationContext())。execute();