2017-10-05 46 views
0

我使用在IO/17中引入的ViewModel。从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.newRequestQueue(context).add(jsonObjectRequest); 

所以我的问题是我不能做到这一点,

  1. 它是推荐的(或可能)执行视图模型中的网络操作?
  2. 如果是(如果可能),该怎么办?
+0

我hv得到了我的答案...张贴晚... api调用可以从虚拟机。但是因为我使用的是抽象,我唯一担心的是将视图类(活动/片段)传递给导致问题的外部环境。 我通过改造解决了这个问题。 –

回答

0

考虑Dagger,这样你就不必担心,大约从ViewModelVolley提供context

相关问题