AsyncTask doInBackground方法未调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AsyncTask doInBackground方法未调用相关的知识,希望对你有一定的参考价值。
我正在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()无法正常工作
答案
您实际上并没有在doInBackground方法中打印日志。您正在尝试在令牌提取完成后以回调方法打印它。我假设您的回调从未被调用过,实际上是在打印日志。
Log.i("ACCESS_TOKEN", userSession.getIdToken().getJWTToken());
为了验证我在说什么print,请在外部添加新的Log语句,您应该看到日志已在控制台中打印。像:
Log.i("ACCESS_TOKEN", "Test logs");
另一答案
您没有调用execute()方法。
AWSInitiator awsInitiator =
新的AWSInitiator(AppSetting.getInstance()。getApplicationContext())。execute();
以上是关于AsyncTask doInBackground方法未调用的主要内容,如果未能解决你的问题,请参考以下文章
AsyncTask:doInBackground() 的返回值去哪了?
无法让 doInBackground 在 AsyncTask 中工作
如何使 AsyncTask“doInBackground()”等待一个数组列表