3
想象一下,我有一個攝像頭應用程序,我在一個角落顯示一個小型MapView,顯示設備位於何處。所以我必須從MapActivity擴展我的活動才能做到這一點。根據安裝的庫從MapActivity或Activity擴展課程
然後想象我想在沒有Google Apis的設備中發佈我的應用,例如Kindle。由於MapActivity不再存在,我應該從常規活動延伸。
我知道我可以設置
<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。
我的問題是,我怎樣才能使用相同的代碼來支持這兩個選項,而不需要根據安裝的庫將整個代碼複製到不同的類中?
在我的情況下,幾乎整個應用程序將在這個輔助類,這不是一個選項,因爲它太複雜 –
嗯。不確定,那麼 - 我承認,我對你的情況並不熟悉,但作爲一條規則,如果你編碼Java並且你需要從兩個不同的基類繼承,你必須創建兩個類。如果你不想複製東西,你必須將它們移出到一些可重用的空間。 如果您的整個應用程序都在繼承自Activity的類中,是否有意義將它分解爲可重用的較小塊? –
是的,這將是最好的選擇,但有時你沒有時間按照他們應該完成的方式來完成任務。 –