我的應用程序有調用MainActivity和它的一個成員的活動類使用Activity類的靜態成員是在後臺服務
public static SharedPreferences prefsdefault;
我的應用還運行在背景上的服務(在另一個處理)。在我寫的服務裏面
MainActivity.prefsdefault.getString(Key,"Hello");
該應用程序有時會在此行拋出空指針異常。爲什麼?這意味着當我關閉該活動並且無法在任何時候訪問它(當我的服務運行時)時,垃圾收集器清理此成員?那麼對此的完美解決方案是什麼?
我應該將MainActiviy.class傳遞給服務嗎?當我實現一個需要上下文的線程時也會發生這種情況。
我不明白「消滅」這個詞,如果我在我的活動中有static boolean x = true,並且它在應用程序中設置爲false。現在,如果操作系統重新啓動我的應用程序,x會是True還是False? – yasserbn 2013-03-10 18:42:32
這是真的。出於同樣的原因,如果你有一個對象初始化的地方,如果os需要你的應用程序的資源,指向該對象的指針變爲null。 – fedepaol 2013-03-10 18:44:15
這是我應該避免在Activity中使用靜態字段的原因嗎?現在,如果我想調用(從我的活動)一個線程,需要在活動中聲明的對象的信息?那麼解決方案是什麼?將MainActivity.class傳遞給Thread構造函數?也許? – yasserbn 2013-03-10 18:50:54