call.enqueue不会在使用Mvvm架构的Retrofit Android中调用

时间:2018-02-15 19:36:37

标签: android mvvm retrofit

我在Mvvm架构中使用Retrofit实现get请求,但是call.enqueue没有被执行。当我在简单的活动中没有mvvm架构的情况下尝试它时它可以正常工作。

Github上:

https://github.com/nikolabozicbg/Retrofit

我尝试登录响应和失败,但没有记录

这是我的片段代码:

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    listItemViewModel = ViewModelProviders.of(this, viewModelFactory)
            .get(ListGamesViewModel.class);

    listItemViewModel.getListItems().observe(this, new Observer<List<ListGames>>() {
        @Override
        public void onChanged(@Nullable List<ListGames> listItems) {

        }
    });
}

查看型号代码:

public class ListGamesViewModel extends ViewModel {
private RetrofitRpository repository;

public ListGamesViewModel(RetrofitRpository repository) {
    this.repository = repository;
}

public LiveData<List<ListGames>> getListItems() {
    System.out.println("iz live model");
    return (LiveData<List<ListGames>>) repository.getListOfData();
}

}

存储库代码:

public class RetrofitRpository {
List<ListGames> listItemList;

public RetrofitRpository() {
}

public List<ListGames> getListOfData() {

    Retrofit.Builder builder = new Retrofit.Builder()
            .baseUrl("http://mobilews.365scores.com/").addConverterFactory(GsonConverterFactory.create());


    Retrofit retrofit = builder.build();

    LisgGamesCLient client = retrofit.create(LisgGamesCLient.class);
    Call<Example> call = client.reposForUser();

    call.enqueue(new Callback<Example>() {
        @Override
        public void onResponse(Call<Example> call, Response<Example> response) {
            System.out.println("onresponse");
        }

        @Override
        public void onFailure(Call<Example> call, Throwable t) {
            System.out.println("onfail");
        }
    });
    return listItemList;
}

}

客户代码:

public interface LisgGamesCLient {

@GET("Data/Games/?lang=1&uc=6&tz=15&countries=1")
Call<Example> reposForUser();

}

示例类代码:

0 个答案:

没有答案