對於存儲在我的應用程序運行時的數據我有兩個靜態變量的類:的Android NullPointerException異常與靜態對象
public class App {
public static ClementineConnection mClementineConnection = null;
public static Clementine mClementine = null;
}
那些在第一個活動的onCreate
方法進行初始化。此活動除了根據狀態啓動其他活動(是否將應用程序連接到服務器)之外什麼也不做。
如果應用程序處於空閒狀態或在後臺運行併發出通知,則在訪問其中一個靜態變量時,有時會在其他onCreate方法中發生NullPointerException。不知何故,他們收集垃圾。 該應用程序有一個線程在後臺運行,所以我認爲必須始終有一個參考。
你知道我怎樣才能防止垃圾收集這些靜態變量?應用程序連接到服務器時,信息必須可用。創建一個新的實例(例如Clementine.getInstance()
)不是一個選項。
如果你想看看代碼:https://code.google.com/p/clementine-remote-android/source/browse/
嘗試使靜態最終 –
@chintankhetiya他不能讓它成爲'最終',因爲他在其他活動中分配 – TheWhiteRabbit