簡體   English   中英

花括號中的上下文

[英]Context in curly braces

活動是否擴展了上下文,那么為什么我們將上下文作為參數傳遞......

LinearLayout layout = new LinearLayout(context);

一般來說,你在 Android 中傳遞給任何ViewContext幾乎總是一個 Activity。 喜歡 99.9% 的時間。 但是,在某些情況下,這不是您想要通過的。 在這種情況下,也許您正在構建 UI 的一部分,遠離 Activity,以便稍后放置到位。 您可能不知道這將附加到什么活動。

然而,有充分的理由確保它始終是活動,如本文所述 例如,利用 Activity 確保主題保持一致。

由於視圖並不需要一個活動,每說,要建立,我們並不需要手工活動。 因此,構造函數只接受 Context。 這是 ISP(接口隔離原則)的一個很好的例子,因為我們限制了 View 可以安全訪問的范圍(它可以在 Context 上調用哪些方法)。 我們還增加了 View API 的靈活性,因為我們不需要 Activity 來實例化視圖。

Activity is a Context正如你在這個中看到的那樣。

Context持續整個應用程序運行時間,而ActivityActivity結束后停止。 如果Activity在代碼中的LinearLayout對象之前結束,則會發生內存泄漏,因為仍然存在對該Activity的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM