2012-07-06 96 views
1

在我的onCreate方法中,在某些活動中出現NullPointerException。這很難調試,因爲它只會在閒置很長一段時間後纔會發生。長時間閒置後重新啓動Android活動 - > NullPointerException

這可能是因爲活動已經結束,垃圾收集器已經銷燬了一些共享對象,但我不確定。

我該如何處理這個問題?

感謝的

+0

在這裏發佈你的日誌貓 – MAC 2012-07-06 14:52:28

+0

這將有助於看到一些代碼,但你總是可以做一些空指針檢查並設置默認值... – javajavajava 2012-07-06 14:52:34

+0

「這可能是因爲活動已結束,垃圾收集器已經摧毀了一些共享對象,但我不確定。「 - 「可能。」這是任何人都可以用你提供的有關情況的最少信息做的最好的。 – 2012-07-06 14:55:18

回答

3

活動沒有「結束」了一段閒置後,他們不要被垃圾回收器回收。會發生什麼是操作系統殺死你的整個過程。然後,當用戶返回活動時,操作系統重新創建該進程並僅重新創建活動堆棧上的最高活動。所以如果你有任何可能由其他活動設置的靜態(類)變量,那麼所有這些東西都已經消失了。

將代碼發佈在您的onCreate()中,並指出發生NullPointerException的位置(查看您的logcat)。

+0

感謝您的回答,我在這裏沒有登錄貓,但我認爲主要問題是我用來在我的活動之間共享對象的方法。我正在使用全局對象列表,每個對象都有一個鍵,而不是Parcelable的東西。你認爲Parcelable可能是答案嗎? – Fr4nz 2012-07-06 16:33:32

+0

除非您發佈錯誤或代碼,否則我們無法爲您提供幫助。 – 2012-07-08 09:21:34