2013-12-14 80 views
2

我注意到我的一個同事正在將一個活動的所有成員變量聲明爲static。他的觀點是,永遠不會有活動的兩個實例,並且靜態成員變量比非靜態更有效。當然,創建活動時,他會像所做的那樣初始化所有成員變量。應用程序中可以有兩個相同活動的實例嗎?

我覺得這是錯誤的。我不認爲這種收益甚至是合理的。但我想由你們來做這件事。不管這是否是一種好的編程習慣,可能超出了stackoverflow的授權範圍。所以我的具體問題是,如果爲一個活動使用靜態成員變量會破壞任何東西(除了編碼器在onCreate中未正確初始化它們的錯誤)。

非常感謝您的幫助。

回答

1

是的,android可以創建2個相同活動的實例,所以你的朋友是錯的。

要只有一個實例,您必須聲明清單中

<activity android:name=".YourActivity" 
      android:launchMode="singleTask" 
      android:label="@string/app_name" /> 
1

是下面的,你可以在同一個活動的多個實例,你經常想。

例如,如果我有3個視圖,簡單地組成一個ListView。您可以創建3個具有相同代碼重複和小改動的活動,或者一個處理加載佈局並獲得對ListView的引用並將其擴展爲添加功能的活動。

您可以通過清單文件中的declaring it that way將活動限制爲一個實例。

相關問題