2013-04-02 47 views
2

我注意到the answer of a SO post對於某些設備(即Android庫的靜態變量存在於一個應用程序的一個活動之間)是正確的,但不適用於其他設備。Android庫類的靜態變量的壽命是多少?

這裏是一個代碼段來說明這個

public class LibraryFoo{ 
    static List<String> listFoo= new ArrayList<String>(); 

    //The following method is called from many activities 
    public static methodFoo(){ 
     //do something to listFoo 
    } 
} 

靜態變量listFoo仍然存在從一個活動到另一個部分Android裝置,但被重建爲其他Android裝置各自的活性。

我的觀察是否有意義?任何人都可以對此有所瞭解嗎?

+1

哪些設備重新創建它?它是否每一次都發生,或者有時會發生? –

+0

靜態變量位於永久區域的堆中。您可以使用類名引用靜態變量。您發佈的鏈接沒有與任何設備相關的任何內容。你有沒有看完整篇文章? – Raghunandan

+0

@Raghav:觀察是基於我們應用程序的日誌。這似乎是每一次新活動開始的時候(對不起,但我不是100%肯定)。例如,一些LG平板電腦就是這樣做的。 – Hong

回答

0

我想你一直困惑,庫變量將保持不變,直到應用程序死亡。

庫方法變量的生存時間直到執行方法(庫僅僅是封裝的概念(隱藏數據在接口後面))。

+0

所提到的變量不是一個方法變量。它是具有該方法的類的靜態變量。 – Hong

+0

@洪,不要使用這個程序,去捆綁存儲。原因是 - 由於Android有不同的上下文。它每次都會重新創建。 – Naveen

+0

靜態變量不與任何上下文關聯。這是意圖。信息不會從一個活動傳遞到另一個活動。它由庫類的靜態方法使用。 – Hong

相關問題