2015-08-21 23 views
0

我有以下問題: 我在我的所有應用程序中都使用它,它包含許多活動和片段,來自主叫活動的靜態字節[],我叫MA.bytearray(其中MA是活動)。那麼問題是,當我暫停我的應用程序並恢復它時,值爲空,在我看來非常正常,因爲活動的生命週期。所以,我決定用這個靜態字節[]做一個Class,它的作用就像是一個DataBase,但是我在應用程序中使用了太多次MA.bytearray。有沒有辦法將MA.bytearray的引用重構爲DB.bytearray?Android - 重構值

回答

1

你在使用什麼IDE,這可以在Android studio中完成,不確定有關Eclipse。 無論如何如果你有一個靜態值,它在活動生命週期中不會受到影響,只要它至少被使用一次,它就會依賴於類本身,它會一直保留在內存中,直到進程被終止。 我想是在活動的某個地方重新初始化值,而不檢查它是否已經設置好,所以你覆蓋它,試圖找出問題出在哪裏。 這也正是爲什麼它認爲不好使用靜態值,我會建議你,而不是使用一個公共的,而不是靜態的參數,在一個類擴展應用程序,添加到您的清單中添加:android:name=".MyApplication"標籤下的應用程序選項卡與相關的類名稱,並且只要您需要訪問該值,請使用(MyApplication)getApplication()來讓應用程序實例訪問公共變量。

+0

如何在Android Studio中執行此操作? –

+0

當你改變一個數值名稱時,它詢問你是否想要掃描整個項目以更改任何引用,或者默認爲 –

+0

是的但我想更改類而不是字節數組的名稱 –

0

第一次寫這樣的:

class MA ... { 
    static byte[] bytearray = DB.bytearray; 
} 

然後直接MA.bytearray場,使用IDE重構工具。

+0

這將做我想要的?我不明白 –

+0

我希望我的bytearray完全依賴於數據庫而不是MA。 –

+0

我建議你做一個重構的方法。否則,我根本不明白你想做什麼。 – JnRouvignac