2010-11-07 22 views
0

我是新來的java和android開發。花了幾天工作與Java後,我開始與Android開發。關於Context類我有這個問題。getApplicationContext如何返回應用程序中使用的上下文類型?

上下文是一個抽象類。它不能被實例化,不能用於調用方法,除非它引用了具體的子類。有人可以告訴如何調用getApplicationContext返回一個上下文類型在應用程序中使用(一個小的片段如何將是一個巨大的幫助)。

並且還幫我理解了這個語句Context context = getApplicationContext()getApplicationContext是一個抽象方法,所以當我們使用這個調用時,哪個對象實現了這個?它是當前進程(app)的ContextWrapper對象,它提供了這種方法。

在此先感謝。

+0

「上下文」是抽象的事實並不意味着你不能調用它的方法 - 它主要是阻止你用構造函數直接實例化它。這意味着一旦你有'getApplicationContext'返回的'Context',你就可以*調用它的方法。 – 2010-11-07 08:33:44

回答

1

您正在實施的活動繼承自Activity,它繼而繼承自上下文。在途中還有幾個班,其中一個爲你實施getApplicationContext()

抽象類不能被實例化,但可以被繼承,任何(或大多數)完全實現其所有抽象方法的類都可以實例化。然後可以將這些類的實例作爲抽象類的抽象類來引用。如果你用好老員工的例子,當你計算總工資時,你不在乎員工是經理還是推銷員。

// Employee is an abstract class with an abstract method - getSalary() 
a = new ArrayList<Employee>(); 
a.add(new Manager()) 
a.add(new Salseman()) 
for (Iterator i = list.iterator(); i.hasNext();) 
{ 
    Employee e = i.next(); 
    System.out.println(e.getSalary()); 
} 
+0

感謝您的回覆。我查看了提供的API,發現ContextWrapper正在實現這些方法,並且這些方法由應用程序上下文和活動上下文繼承。 – yaami 2010-11-07 18:52:40

相關問題