如何利用Android Java中的生命周期事件和事件总线支持从多个活动中恢复固有功能?
我有两个活动,它们都是从基本活动扩展而来的
即
CarActivity{
}
GasCarActivity extends CarActivity{
function onCreate(){
registerGasEvent() // so that onLowGasEvent() will work
}
function checkGas(){}
@Subscribe(threadMode = ThreadMode.MAIN)
function onLowGasEvent(){
}
}
ElectricCarActivity extends CarActivity{
function checkBattery(){}
@Subscribe(threadMode = ThreadMode.MAIN)
function onLowBatteryEvent(){
}
}
现在,我需要一个混合的CArActivity,它使用GasCarActivity和ElectricCarActivity函数以及生命周期事件
我也在使用eventbus库,如何在HybridCarActivity中同时使用onLowGasEvent和onLowBatteryEvent的订阅功能
我能在这里做什么
# 1 楼答案
Java没有多重继承。您必须使Car对象具有您想要使用的共享方法
# 2 楼答案
正如@Kristy Whesh所建议的,Java不允许多重继承。。。但是有接口
就这样做吧:
-创建两个接口:一个用于汽油车,另一个用于电动汽车
-你的混合动力汽车实现了这两个接口,因此你有两个需要验证的功能
-旧汽车类根据其类型实现正确的接口
希望这能给你一些帮助或提示
干杯
# 3 楼答案
Java不支持实现的多重继承,但它支持接口的多重继承。因此,您可以实现任意多个接口。 为了避免重复并在多个类之间共享代码,可以使用委托
例如:
HybridCar
会是这样的:EventBus
,你应该把订阅服务器作为一个活动接口——但也要把它的实现委托给处理程序。因此,在HybridActivity
中:如果
onLow...Event
需要Context
,请更新接口方法以将其作为参数传递希望有帮助