Here is step-by-step how to use the application context from ViewModel.
Step 1: Let your class extends AndroidViewModel
public class FolderViewModel extends AndroidViewModel {
public FolderViewModel(@NonNull Application application) {
super(application);
}
public void getAllFolders() {
Cursor cursor = getApplication().getContentResolver()
.query(uri, projection, null, null, null);
}
}
Step 2: Create a viewmodel instance from your activity
ViewModelProvider.Factory factory =
ViewModelProvider.AndroidViewModelFactory.getInstance(getApplication());
ViewModelProvider provider = new ViewModelProvider(this, factory);
FolderViewModel folderViewModel = provider.get(FolderViewModel.class);
// Call methods of viewmodel
folderViewModel.getAllFolders();