|
13
|
| dglozano · 技术社区 · 7 年前 |
|
|
1
33
更新时间:在得到易卜拉欣·迪苏基的建议后 我深入挖掘,发现了一些有趣的东西!这是背景。 O、 P。 考虑到Android架构组件,Android框架的服务组件在哪里
它与
从现在开始,你可以
(我建议不要通读) 应与处于同一级别 活性/碎片 ,因为它是框架组件,而不是 MVVM公司 . 但是因为这个服务没有实现 LifecycleOwner 数据源 因为它可以作为应用程序的入口点。 所以,这里的困境是有时 (就你而言) 服务作为数据源,向用户界面提供来自某个长期运行任务的数据。 所以它应该在什么地方 Android架构组件 LifecycleObserver . 因为,无论您在后台做什么,您都需要考虑 生命周期所有者 . 为什么?因为,我们通常会把它绑定到 (活动/片段) &要执行长时间关闭UI的任务(amp;N)。所以,它可以被当作 生命周期观察者 " !
在这种情况下,我们不会要求
|
|
|
2
1
避免直接接触Android服务的一种方法是通过接口对象。这是 “隔离”界面 在缩写中, 固体
有了上述范例,您可以自由地将服务放在包含POJO代码的包之外的包中。没有“正确”的位置来放置您的服务——但是肯定有错误的地方放置它们(例如,您的POJO代码放在哪里)。 |
|
3
0
我不是LiveData的专业人士,但是这种方法会有什么问题呢? |
|
|
4
0
如果我们像在onStart/onStop中一样从活动或多个活动绑定/取消绑定到服务,那么我们有一个单例实例,它保存着与蓝牙相关的管理器(我为blemanager使用了nordic lib)。该实例处于服务中,因此我们可以断开连接,例如,当服务被破坏时,因为ui与它解除了绑定,并在创建服务时重新连接到该绑定。我们还将blemanager singleton注入viewmodel中,以便通过livedata或rx或ble manager提供的类似反应性数据(例如连接状态)来简化交互和数据侦听。通过这种方式,我们可以从viewmodel与ble交互,订阅特征等,并且服务提供的作用域可以在多个活动中生存,并且基本上知道何时连接或断开连接。我已经在我的应用程序中尝试过这种方法,到目前为止效果还不错。 |
|
5
-2
|
|
Murilo · Jetpack编写导航栏项目图标 1 年前 |
|
|
KolaYAndr · 活动RESULT_OK似乎从未发生过 1 年前 |
|
psycho_pat · Android应用程序中的权限 1 年前 |
|
|
FarazFiroz · 如何将argb转换为描述性文本颜色 1 年前 |
|
Daniel · Unity Android游戏支持的设备数量太少 1 年前 |