AsyncTask 内部的改造调用
2022-09-05 00:21:36
我最近开始开发一个Android应用程序,并决定使用Retrofit作为REST服务的客户端,但我不确定我的方法是否良好:
i. 我已经实现了对我的 api 的异步调用,该调用在 AsyncTask 的 doInBackground 方法中调用。担忧:阅读这篇文章让我感到困惑。异步任务不适合这种任务吗?我应该直接从活动调用 API 吗?我知道Retrofit的回调方法是在UI线程上执行的,但是通过HTTP进行调用呢?改造是否为此创建了螺纹?
ii. 我希望将身份验证响应保存在共享首选项对象中,该对象在回调的成功方法中似乎不可用。任何建议/良好做法?
提前感谢您:)
这是我的doInBackGroundMethod:
@Override
protected String doInBackground(String... params) {
Log.d(LOCATION_LOGIN_TASK_TAG, params[0]);
LocationApi.getInstance().auth(new AuthenticationRequest(params[0]), new Callback<AuthenticationResponse>() {
@Override
public void success(AuthenticationResponse authenticationResponse, Response response) {
Log.i("LOCATION_LOGIN_SUCCESS", "Successfully logged user into LocationAPI");
}
@Override
public void failure(RetrofitError error) {
Log.e("LOCATION_LOGIN_ERROR", "Error while authenticating user in the LocationAPI", error);
}
});
return null;
}