2011-03-15 71 views
5

我對Android中的術語「上下文」有疑問。我發現上下文提供了有關應用程序運行環境的信息,但Application Context和Activity Context之間有什麼區別?什麼是Android中的上下文

,爲什麼我做這樣的事情:

AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); 

爲什麼我通過上下文到構造?任何人都可以提供幫助我理解什麼是上下文,以及上下文對象是什麼?

我不想從android引用中複製/粘貼,因爲我已經閱讀過.....沒有理解太多次。

+0

下面是關於[上下文]的類似問題的一個很好的答案(http://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the-various-methods-to-get-a -context/1027438#1027438) – Adinia 2011-03-15 11:41:46

回答

3

它們都是Context的實例,但應用程序實例綁定到應用程序的生命週期,而Activity實例綁定到Activity的生命週期。因此,他們可以訪問有關應用程序環境的不同信息。

如果您閱讀getApplicationContext上的文檔,則會注意到,如果您需要上下文的生命週期與當前上下文不同的上下文,則應該只使用它。這不適用於你的任何一個例子。

活動上下文可能有一些關於完成這些調用所需的當前活動的信息。如果您顯示確切的錯誤消息,可能能夠指出它究竟需要什麼。

但是一般來說,除非你有充分的理由不使用活動上下文。

0

類概述

接口有關的應用程序環境的全局信息。這個 是一個抽象類,其實現由Android 系統提供。它允許訪問特定應用的資源和 類,以及向上調用應用程序級的操作,如 發射活動,廣播和接收意圖等

anddev網站上說得很清楚。

您必須將其傳遞給其他類,以便他們可以訪問全球 信息等等。

+0

這是遠遠不清楚。這是人們可以寫得最模糊的描述之一。 – DallaRosa 2011-07-13 08:02:42

1

用簡單的詞生病試圖解釋。讓我們看看你的例子

如果你正在使用AlertDialog Builder,AlertDialog將如何理解他將得到顯示的位置? (如果您不在該活動中)

此處上下文出現在圖片中。我們將活動上下文傳遞給AlertDialog。簡而言之,AlertDialog將出現在提供的上下文中。

這是我的理解是正確的,如果我錯了。