【发布时间】:2011-10-28 14:28:04
【问题描述】:
我有一个程序需要继承广播接收器和 MapActivity 的属性。实际上我想在收到朋友的短信时发送当前位置(经度和纬度)。我有一个代码,但不知道如何继承两个类的属性。这是我的代码:
如果这不可能,请给我一些想法来解决这个问题或任何其他方法?
【问题讨论】:
标签: java android gps sms location
我有一个程序需要继承广播接收器和 MapActivity 的属性。实际上我想在收到朋友的短信时发送当前位置(经度和纬度)。我有一个代码,但不知道如何继承两个类的属性。这是我的代码:
如果这不可能,请给我一些想法来解决这个问题或任何其他方法?
【问题讨论】:
标签: java android gps sms location
由于java禁止多重继承,你实际上不能。当您计划申请隐蔽服务时,您不需要任何活动 - 只需一个广播接收器 它与位置服务通信并将获得的位置发送到某处。
【讨论】:
Java 不支持多重继承,但您可以实现任意数量的接口,因此您可以通过组合来实现。这是一个粗略的大纲,但有很多方法可以做到。基本思想是,对于您想要从其中继承的一个或两个类,您有一个对某个实现的引用,并且您通过委托向实际实现公开相同的接口。
interface MapActivity {
Coordinates getCoordinates();
...
}
class SomeMapActivityImpl {
...
}
class ReceivelocationActivity extends BroadcastReceiver implements MapActivity {
private MapActivity mapActivity = new SomeMapActivityImpl();
public Coordinates getCoordinates() {
return mapActivity.getCoordinates();
}
...
}
【讨论】: