[英]Context in curly braces
活動是否擴展了上下文,那么為什么我們將上下文作為參數傳遞......
LinearLayout layout = new LinearLayout(context);
一般來說,你在 Android 中傳遞給任何View
的Context
幾乎總是一個 Activity。 喜歡 99.9% 的時間。 但是,在某些情況下,這不是您想要通過的。 在這種情況下,也許您正在構建 UI 的一部分,遠離 Activity,以便稍后放置到位。 您可能不知道這將附加到什么活動。
然而,有充分的理由確保它始終是活動,如本文所述。 例如,利用 Activity 確保主題保持一致。
由於視圖並不需要一個活動,每說,要建立,我們並不需要手工活動。 因此,構造函數只接受 Context。 這是 ISP(接口隔離原則)的一個很好的例子,因為我們限制了 View 可以安全訪問的范圍(它可以在 Context 上調用哪些方法)。 我們還增加了 View API 的靈活性,因為我們不需要 Activity 來實例化視圖。
Activity
is a Context
正如你在這個中看到的那樣。
Context
持續整個應用程序運行時間,而Activity
在Activity
結束后停止。 如果Activity
在代碼中的LinearLayout
對象之前結束,則會發生內存泄漏,因為仍然存在對該Activity
的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.