首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在服务机器人中从viewModel调用方法?

如何在服务机器人中从viewModel调用方法?
EN

Stack Overflow用户
提问于 2022-01-19 13:09:22
回答 1查看 662关注 0票数 -2

我得到一份服务

代码语言:javascript
复制
class BubbleButtonService : Service(), View.OnTouchListener, View.OnClickListener

在这个服务中,我得到了一个方法,我想从viewModel调用一个方法。我试图通过构造函数传递viewModel,但是它不工作,Manifest没有看到这个服务,并给出了一个错误

代码语言:javascript
复制
This class should provide a default constructor (a public constructor with no arguments)

那么,如何从服务调用方法、视图模型或更新视图模型实时数据中执行该方法呢?

EN

回答 1

Stack Overflow用户

发布于 2022-01-19 16:42:36

一个ViewModel在某人实例化它之后就存在了,它通常是从一个活动或片段完成的。如果您的方法(在ViewModel的类文件中)是静态的,那么您可以将它声明为“公共静态”,并且它在任何地方都是可见的。如果是类方法,则必须:

ViewModel

  • choose

  • 实例化服务将如何“到达”它:
  • (最糟糕的方式)将ViewModel实例保存在静态变量中,并使用它从Service...
  • ...or bind()活动到服务,传递ViewModel作为参数/参数,将其保存在服务的变量中,最后在Service

中使用

但是,直接从服务调用ViewModel方法(特别是如果它是IntentService或后台服务)并不是很好的做法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70771147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档