Aqu*_*hka 6 service android kotlin dagger-hilt
一般来说,我对匕首柄和依赖注入很陌生。我遵循了一些我能找到的例子,我设法用剑柄设置我的应用程序,它运行得很好。然而,我在我的一项活动中使用 serviceComponent 来提供一些数据库,据我所知,提供程序非常有用,因为它允许我在需要时初始化并提供我的数据库。我的问题是我不完全了解它现在是如何工作的。我希望能够更改我的数据库,但提供程序似乎只被调用一次,所以我可以这样做。这是我的模块:
@Module
@InstallIn(ServiceComponent::class)
object ServiceModule {
@ServiceScoped
@Provides
fun provideMusicDatabase() = MusicDatabase(listOfSong)
}
Run Code Online (Sandbox Code Playgroud)
这是第一次为我的活动提供音乐数据库,但是当我尝试更改我的歌曲列表时,我不知道如何通知我的服务某些内容已更改。所以我想知道是否有办法重新初始化/删除/清除 ServiceComponent,以便我可以更新我的数据库。或者也许我只是使用了错误的刀柄工具,因为我不太熟悉它?
另外我想通知一下,即使我完成我的活动并且它被破坏,当我重新打开活动时我的 ServiceComponent 也不会重新初始化。我猜这是正常行为,但我是新手,所以我真的不知道。所以也许我需要更改注释,以便在重新启动活动时它会重置。我还尝试将 MusicDatabase 提供程序的 @ServiceScoped 更改为 @ActivityScoped,但它不起作用。
所以也许我只是错过了刀柄的全部要点,或者我不知道如何使用它。但如果我能在这方面得到一些帮助,那就太好了。
这正是正常行为,当您完成时,所有活动ActivityComponent都会被清除,但是由于服务不得停止,因此SingletonComponent(应用程序级别)和ServiceComponent都保持活动状态。您需要使您的服务独立并导出,这样当不再有绑定的客户端(活动)时它就不会停止,然后您的活动将只绑定到该服务。
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |