想象一下,我有一个相机应用程序,我在其中一个角落显示一个小的 MapView,显示设备所在的位置。所以我必须从 MapActivity 扩展我的活动才能做到这一点。
然后想象一下,我想在没有 Google API 的设备上发布我的应用程序,例如 Kindle。由于 MapActivity 不再存在,我应该从常规 Activity 扩展。
我知道我可以设置
<uses-library
android:name="com.google.android.maps"
android:required="false" />
即使缺少库,也让用户安装应用程序。然后使用
try {
Class.forName("com.google.android.maps.MapView");
googleMapsEnabled = true;
} catch( ClassNotFoundException e ) {
googleMapsEnabled = false;
}
检查 MapView 类是否存在。
但问题是我扩展的基类,如果 Google 地图不可用,它应该是 Activity 而不是 MapActivity。
我的问题是,如何使用相同的代码来支持这两个选项,而不根据安装的库将整个代码复制到不同的类中?