小编Har*_*ani的帖子

从 ViewModel 执行网络操作

我正在使用 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
 }
}
Run Code Online (Sandbox Code Playgroud)

我希望在“ loadUsers() ”方法中执行 Volley 请求。但我不能这样做,因为它需要一个“上下文”,如下所示

Volley.newRequestQueue(context).add(jsonObjectRequest);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,

  1. 是否建议(或可能)在 ViewModel 内执行网络操作?
  2. 如果是(如果可能),该怎么做?

android android-volley android-viewmodel

5
推荐指数
1
解决办法
3265
查看次数