1

我一直在尝试扩展 Application 作为获取 Application Context 对象的快速方法。我有这样的课:

public class PageMonitorApplication extends Application
{
    @Override
    public Context getApplicationContext()
    {
        return super.getApplicationContext();
    }
}

我的清单包括:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".PageMonitorApplication">

但是,当创建一个实例PageMonitorActivity并调用时,getApplicationContext()我得到一个空指针异常。在 Eclipse 中调试并检查 的实例时PageMonitorActivity,我可以看到base=null

谁能告诉我出了什么问题?

4

2 回答 2

1

super.getApplicationContext()正在返回null,因为PageMonitorApplication 应用程序上下文。您应该检查是否getApplicationContext返回null,如果是,请使用Context您已有的。

要获得对 的引用PageMonitorApplication,请调用getApplicationContext当前的ActivityService(或Context您可能拥有的其他)。

于 2011-11-06T13:52:03.853 回答
0

在任何活动中,您都可以使用getApplicationContext()直接访问ApllicationContext对象。无需使用 Application 类创建和试验。

于 2011-11-06T13:57:37.077 回答