我正在使用改造来获取一些信息。我喜欢将该信息存储在本地变量中,这样如果用户决定喜欢该项目,我可以将其本地保存在设备上。
public void fetchTrailerData(int movieId) {
ApiInterface apiServies = ApiClient.getClient().create(ApiInterface.class);
Call<TrailerResponse> call = apiServies.getTrailersForMovie(movieId, BuildConfig.OPEN_WEATHER_MAP_API_KEY);
call.enqueue(new Callback<TrailerResponse>() {
@Override
public void onResponse(Call<TrailerResponse> call, Response<TrailerResponse> response) {
List<Trailer> trailers = response.body().getResults();
if (trailers != null && trailers.size() > 0 && !trailers.isEmpty()) {
Utilities util = new Utilities(mContext);
util.populateTrailer(mView, trailers);
}
}
@Override
public void onFailure(Call<TrailerResponse> call, Throwable t) {
}
});
}
当我寻找解决方案时,有人能指出我正确的方向吗?
答案 0 :(得分:1)
不,你不能使用局部变量。一旦执行流程超出onResponse
方法,将清除局部变量。
相反,使用实例变量并将返回的结果分配给它们。
Here是这样做的一个主要例子。