【发布时间】:2018-03-16 22:12:56
【问题描述】:
我正在使用 IO/17 中引入的 ViewModel。
我正在使用 android 开发者页面上提供的以下指南。 https://developer.android.com/topic/libraries/architecture/viewmodel.html
以下是他们的示例代码。
public class MyViewModel extends ViewModel {
private MutableLiveData<List<User>> users;
public LiveData<List<User>> getUsers() {
if (users == null) {
users = new MutableLiveData<List<Users>>();
loadUsers();
}
return users;
}
private void loadUsers() {
// do async operation to fetch users
}
}
我希望在 'loadUsers()' 方法中执行 Volley 请求。但我不能这样做,因为它需要一个 'context' 如下
Volley.newRequestQueue(context).add(jsonObjectRequest);
所以我的问题是,
- 是否建议(或可能)在 ViewModel 中执行网络操作??
- 如果是(如果可能的话),怎么做?
【问题讨论】:
-
我得到了我的答案...发布晚... API 调用可以从 VM 进行。但是由于我使用的是 volley,所以我唯一关心的是在视图类(活动/片段)之外传递上下文,这会导致问题。我通过改造解决了这个问题。
标签: android android-volley android-viewmodel