2014-04-10 143 views
0

我已經閱讀了很多教程,描述了android各種選項獲取上下文的區別,但我仍然陷入困惑。 是否有任何問題如果我使用getApplicationContex()而不是getContext(),getActivity()和getBaseContext()..在我的整個應用程序中?Android背後的邏輯

很多人將此問題標記爲重複。但是我仍然沒有從任何人那裏得到滿意的答案。答案應該是在「是」或「否」,如果是,那麼就是正確的原因。

請再次看看我的問題。

是否有任何問題如果我使用getApplicationContex()而不是getContext(),getActivity()和getBaseContext()等等等等......在我的整個應用程序中? 如果是..爲什麼?

+0

http://stackoverflow.com/q/6854265/3330969 – Kedarnath

回答

0

Context是Android庫中的主要基類。每個班級都擴展它。它就像Java庫中的Object類一樣。

有越來越語境

  • getApplicationContext()不同的方式:它指出了應用程序的上下文。
  • getContext():它指向當前正在運行的組件。
  • getBaseContext():這是ContextWrapper的方法。 ContextWrapper是「代理Context的實現,它將所有調用簡單地委託給另一個Context,可以被修改爲不改變原始Context的子類。」 (根據javadocs)。
  • this:它指向當前的Activity/BroardcastReceiver或Service的上下文。
  • getActivity():它指向當前正在運行的活動的上下文。
+0

我得到的想法,getApplicationContext()將返回此和getContext()將返回此等等等.....但我想知道是如果我使用getApplicationContext()在我的整個應用程序中有任何問題? –

+0

getApplicationContext()總是返回應用程序的上下文,這意味着它具有整個應用程序的上下文。所以這是獲取上下文的正確方法。在其他情況下,你可能會得到'NullPointerException' – Kedarnath

+0

這意味着我可以使用getApplicationContext()任何地方在應用程序中獲取上下文權利?如果是這樣,那麼使用其他方式獲取上下文有什麼用處。我很抱歉問這種類型的問題但我能做些什麼新的Android世界 –

0

大多數情況下,您獲取的上下文是活動而不是應用程序。 Here是一個 關於上下文的很好的解釋。
據我所知,如果我需要任何與UI有關的事情,我使用Activity上下文。