Where is the code which is called when you call getApplicationContext()?
<p>I have looked into Android <a href="http://android.googlesource.com" rel="nofollow">sources</a> just out of interest. What I found is that <code>Context</code> is an abstract class with abstract method: </p>

<pre><code>public abstract Context getApplicationContext();
</code></pre>

<p>The <code>ContextWrapper.java</code> extends <code>Context.java</code> which led to implementation of <code>getApplicationContext()</code> method:</p>

<pre><code> @Override
    public Context getApplicationContext() {
        return mBase.getApplicationContext();
    }
</code></pre>

<p>But <code>mBase</code> is reference to an object of type <code>Context</code> which is initialized in <code>ContextWrapper</code>'s constructor:</p>

<pre><code>public ContextWrapper(Context base) {
    mBase = base;
}
</code></pre>

<p>So this <code>mBase</code> reference refers to <code>abstract</code> class? 
Well, I just don't understand where is the code which is executed when you call <code>getApplicationContext()</code> from your <code>Activity</code>.</p>
