2017-10-05 145 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