在带有上下文的MVVM中使用WallpaperManager出现问题

时间:2019-01-31 11:22:39

标签: mvvm dagger-2 wallpapermanager

我想通过应用在我的手机屏幕上设置墙纸。我想从 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,但我不知道该怎么做。

0 个答案:

没有答案