繁体   English   中英

如何从服务 Android 中的 viewModel 调用方法?

[英]How to call method from viewModel in service Android?

我有服务

class BubbleButtonService : Service(), View.OnTouchListener, View.OnClickListener

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

This class should provide a default constructor (a public constructor with no arguments)

那么如何从视图 model 或更新视图 model 实时数据的服务调用方法中执行该方法?

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

  1. 实例化它的 ViewModel
  2. 选择服务将如何“到达”它:
    • (最坏的方法)将 ViewModel 实例保存在 static 变量中并从服务中使用它...
    • ...或将活动绑定到服务,将 ViewModel 作为参数/参数传递,将其保存在服务的变量中,最后在您的服务中使用它

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM