可能重複活動之間傳遞參數更好:
Passing data between activities in Android哪條路是對的Android
確定可以說,在我的Activity1.java有一個叫做可變date
如果我聲明它是靜態的,在我的Activity2中,我可以通過編寫Activity1.date
來記住它的值。
如果它不是靜態的,我可以在啓動activity2時通過Bundle
傳遞日期的值。
兩種方式都在工作。
我的問題是哪個是最優先的,缺點較少?
可能重複活動之間傳遞參數更好:
Passing data between activities in Android哪條路是對的Android
確定可以說,在我的Activity1.java有一個叫做可變date
如果我聲明它是靜態的,在我的Activity2中,我可以通過編寫Activity1.date
來記住它的值。
如果它不是靜態的,我可以在啓動activity2時通過Bundle
傳遞日期的值。
兩種方式都在工作。
我的問題是哪個是最優先的,缺點較少?
靜態不好有很多原因,主要是因爲它是嗯......靜態的。這意味着它會一直記憶,並且您的領域只有一個實例可以在您的活動的所有實例中共享。
正因爲如此,它可以讓你在許多地方以這麼多微妙的方式咬你。例如 - 如果您爲同一活動編寫多個單元測試,則該值將被共享,因此您的測試不會是獨立的。或者另一個用例:你在堆棧中有幾個活動實例 - 它們都會共享這個值,在很多情況下它們不是你想要的。
底線:不要做靜電。靜態可以爲您節省一兩行代碼,但可能會帶來很多麻煩。順便說一下,它不是特定於Android,這是真的任何平臺
當然在捆綁中傳遞的耦合要少得多。
使用靜態Activity2不能沒有Activity1存在。活動意味着高度可重用,但通過靜態,你高度結合了活動。
這就是所謂的靜態領域的優勢,它是靜態的:P – AAnkit 2012-08-11 15:36:02