android - 可以在服务中使用 LiveData 对象吗?

标签 android android-fragments android-service android-livedata android-lifecycle

我正在服务中使用 Companion 对象将我的 LiveData 公开给 fragment 。这可以使用吗,还是会导致内存泄漏等问题?

为我服务:

  companion object {
    val timeLeftInSeconds = MutableLiveData<Long>(0)}

在我的 fragment 中:

 LockoutService.timeLeftInSeconds.observe(viewLifecycleOwner, Observer {...})

最佳答案

不,没关系,因为伴随对象有点像静态字段,但我强烈建议使用存储库,因为它会提高代码的可读性并使其更加健壮。类似的东西

object AppRepository{
    val timeLeftInSeconds = MutableLiveData<Long>(0)}
}

在 fragment 中

AppRepository.timeLeftInSeconds.observe(viewLifecycleOwner

关于android - 可以在服务中使用 LiveData 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66738927/

相关文章:

android - 第 2 部分 由 UI 启动的持久性前台 android 服务,也可以在 sleep 模式下工作,也可以在手机重启时启动

android - 今天有多少 Android 设备支持 GLSurfaceView.setPreserveEGLContextOnPause?

java - 无法从 Android 应用程序中的 Google map 获取当前位置

android - 我如何收听卸载 apk?

android - Google Play 服务 9.2.0 选择性编译感知 API

java - 如何在android中创建嵌套的 fragment View ?

java - 新错误 java.lang.IllegalStateException : Can not perform this action after onSaveInstanceState

android - 如何设置应用程序 :layout_scrollFlags for Toolbar programmatically

android - 锁定和解锁屏幕后恢复 fragment

安卓服务不能独立运行