如何在广播接收器中访问 MyViewModel(AndroidViewModel)

迷宫

我最近在我的 android 应用程序中实现了 Room。https://developer.android.com/training/data-storage/room

它在Activities.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mWritedSMSViewModel = new ViewModelProvider(this).get(WritedSMSViewModel.class);
    mWritedSMSViewModel.getAllWritedSMSs().observe(this, new Observer<List<WritedSMS>>() {
        @Override
        public void onChanged(@Nullable final List<WritedSMS> smss) {
            // Update the cached copy of the words in the adapter.
            if(smss != null) {
                mAdapter.setSMSs(smss);
            }
        }
    });

但是我不能使用我的房间 BroadcastReciever

mWritedSMSViewModel = new ViewModelProvider(???).get(WritedSMSViewModel.class);

问题是我不知道上面的代码应该使用什么参数。我确认了thiscontext不能用作参数。

我怎么了?

梅胡尔·卡巴里亚

你不应该那样做。这是不好的做法。因为 ViewModels 只附加了Activityand FragmentOnly。

一件事可以实现您的要求。

将您的Room DB操作与ViewModel单独的singleton分开ViewModel任何其他需要的地方使用它Broadcast被接收时,写数据到DB通过这个单例类,而不是视图模型。

如果您正在观察LiveData中的Fragment,那么它也会更新您的视图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在广播接收器中启动服务?

来自分类Dev

访问广播接收器中的应用程序类

来自分类Dev

在广播接收器中访问ViewModel生成的数据

来自分类Dev

如何访问清单中声明的组件实例(广播接收器)

来自分类Dev

我如何在广播接收器中检测运动传感器?

来自分类Dev

如何在服务中使用广播接收器

来自分类Dev

如何在Android中注销广播接收器

来自分类Dev

如何在服务中使用广播接收器

来自分类Dev

广播接收器如何在活动之间工作?

来自分类Dev

如何在Windows Phone中实现Android广播接收器的那种编程

来自分类Dev

如何在Windows Phone中实现Android广播接收器的编程方式

来自分类Dev

如何在服务和广播接收器中检测关键事件

来自分类Dev

如何管理服务中的广播接收器

来自分类Dev

如何在其他广播接收器之后运行广播接收器?安卓

来自分类Dev

广播接收器

来自分类Dev

如何注入广播接收器

来自分类Dev

如何从广播接收器调用GetAppContext?

来自分类Dev

在广播接收器中更新TextView

来自分类Dev

广播接收器中的吐司

来自分类Dev

BaseAdaper中的广播接收器

来自分类Dev

如何在带有广播接收器的HTC手机中检测耳机按钮双击?

来自分类Dev

片段中的广播接收器无法从服务接收意图

来自分类Dev

广播接收器未在android中接收意图数据。

来自分类Dev

如何在下载接收器中访问本地文件名?

来自分类Dev

从广播接收器访问共享的首选项

来自分类Dev

广播接收器vs唤醒广播接收器

来自分类Dev

广播接收器或服务?

来自分类Dev

如何在广播接收器的帮助下获取相机单击事件?

来自分类Dev

在显示活动之前,如何在android中使用来自广播接收器的数据

Related 相关文章

热门标签

归档