我想通过应用在我的手机屏幕上设置墙纸。我想从 ViewModel(MVVM)内部执行此操作。
问题:
我试图通过 Provider 在 ViewModel 中获得上下文,但是我得到了null error
这是我在 ViewModel 中尝试过的操作:
fun setWallpaper() {
val myWallpaperManager = WallpaperManager.getInstance(mResourceProvider!!.getContext())
try {
myWallpaperManager.setBitmap(mResourceProvider.getBitmap())
}catch (e: IOException){
e.printStackTrace()
}
}
我要从中获取上下文的ResourceProvider:
class ResourceProvider(mContext: Context) {
private var mContext: Context? = null
fun getContext(): Context {
return mContext!!.applicationContext
}
}
这是片段,我可以在其中访问 ViewModel:
viewModel.setWallpaper()
希望你能理解。如果有办法用dagger2做到这一点,因为我也在这个应用程序中使用了dagger2,但我不知道该怎么做。