Android 知道可以控制活动(屏幕)和保存值的范围吗?
这个问题最值得讨论。 在许多情况下,我们希望完成的活动不仅仅是一项。 我们始终希望向其他活动发送值 在传统方式中,我们使用eventBus,有时使用startActivityForResult。我认为这两种方式都不是一个完美的主意 现在,我们有了viewModel,它有一个存储让片段加载主viewModel。在其他一些客户端(比如我不擅长的reactive),它们有一个存储来传输数据 所以我更喜欢有没有更好的办法让这项活动更容易进行 实际上,我在这方面没有做太多的工作。但是一些代码可能对这方面有用Android 知道可以控制活动(屏幕)和保存值的范围吗?,android,Android,这个问题最值得讨论。 在许多情况下,我们希望完成的活动不仅仅是一项。 我们始终希望向其他活动发送值 在传统方式中,我们使用eventBus,有时使用startActivityForResult。我认为这两种方式都不是一个完美的主意 现在,我们有了viewModel,它有一个存储让片段加载主viewModel。在其他一些客户端(比如我不擅长的reactive),它们有一个存储来传输数据 所以我更喜欢有没有更好的办法让这项活动更容易进行 实际上,我在这方面没有做太多的工作。但是一些代码可能对这方面有
interface IScope {
fun registerScreens(screen: IScreen)
fun unRegisterScreens(screen: IScreen)
fun finishAll()
}
代码只是我的想法,肯定有很多问题。
即使对于这种想法,我想知道是否有图书馆做过这样的事情,或者是否有人对这种想法有好的想法
interface IScreen {
fun getScope(): IScope
fun finish()
}
class ScopeSample: IScope {
val scopeData: LiveData<Any>
}
class Activity1: IScreen {
override fun getScope(): IScope {
return Scope.create("scopeKey")
}
override fun onCreate() {
getScope().registerScreen(this)
getScope<ScopeSample>().scopeData.observe(customLifeCycleOwner,{})
}
override fun onDestroy() {
getScope().unRegisterScreen(this)
}
override fun finish() { finish() }
}
class Activity2: IScreen {
override fun getScope(): IScope {
return Scope.create("scopeKey")
}
override fun onCreate() {
button2.setOnClickListener() { getScope().scopeLiveData.updateValue()
button.setOnClickListener() { getScope().finishAll() }
}
override fun finish() { finish() }
}