2011-11-14 40 views
1

我特別詢問有關本款Android文檔中:對象在Android中與「活動/上下文」「綁定」意味着什麼?

如果傳遞的對象是由於某種原因綁 活動/語境下,你會泄漏 活動的所有意見和資源。

您可以在頁面上找到關於Faster Screen Orientation更改的該段落。

我假設它們是指保留對活動/上下文的引用的對象。在我的Activity中,我在onRetainNonConfigurationInstance中返回一個HashMap,所以我認爲我很好,因爲該HashMap中沒有任何對象包含對Activity/Context的引用。但我想確保;我仍然在瞭解Android的泄漏情況。

回答

1

Patrick Dubroy展示了視頻教程doing showing something similar。然後他繼續調試該泄漏。我想你可以按照相同的程序來確認你的代碼是否真的有漏洞。

如果對象保留對活動或上下文的引用,它就不允許GC收集那些未使用的活動,從而產生巨大的泄漏。

0

我一直在處理這個問題,並且我可能甚至不知道你做的那麼多,所以我仍然看到一個WeakRef類型的使用,但後來我再也看不到人們檢查空值,所以我可以如果用戶在系統周圍翻轉手機,可以收集它,如果它變得緊張,只需要轉儲一個進程,那麼從我所瞭解的內容來看,據我所知,正如我們所知道的,正如我們所知道的那樣,System.gc並不完全是概念化的因此指針保持在某種類型的系統表中,以在源代碼和硬件中實際發生的事情之間進行轉換,從而可以在重新輸入時產生新的指針,因此當它發生時它不是仔細的編碼和測試,不要讓數據結構中的參考文件暫時不會「堆走」。

肯定要避免靜態,除非有一個原因,就在幾天前我最終寫了一些東西作爲new Object(){ public methodNamedInAnInterface(){ /* stuff goes here */ }},但後來我想到這是一個「盡最大努力」,我們不能從代碼編程,我們寫os應該在供應商的代碼商店中完成,在那裏訪問它的實際運行方式應該是一個正常的和預期的約束條件

我在自己的代碼中使用靜態代碼,但後來我在一個孤立的本地做原型[換言之,我可以重新開始轉儲流浪指針]

我正在轉向編程心智模式,此代碼在掌上電腦上運行,而不是10,000請求第二個約束

+2

老兄,srsly,學習一些標點符號:) –

相關問題