java.lang.NullPointerException context.getSharedPreferences

时间:2016-06-28 15:50:13

标签: android

我在片段中调用Notification n = new Notification(getContext());

@Override
public void setMenuVisibility(final boolean visibility) {
    super.setMenuVisibility(visibility);

    if (visibility) {

        Notification n = new Notification(getContext());

        if (n.getNewNotificationsCount() > 0) {
            n.setNotificationsAsSeen();
            n.setNewNotificationsCount(0);
        }
    }

}

并获取nullpointerexception

这是Notification.class loader

public Notification(Context context) {
    this.context = context;
    pref = context.getSharedPreferences(NOTIFICATION_SETTINGS_PREF_NAME, PRIVATE_MODE);//here is error (NullPointerException)
    editor = pref.edit();
}

1 个答案:

答案 0 :(得分:0)

首先,您必须考虑到,片段只有在附加到活动后才会获得活动。在onCreate()片段的生命周期方法或更高版本中调用此方法是安全的,而不是在调用onDetached之后调用此方法。 然后你必须考虑到,在API 23上添加了Fragment的getContext()方法,所以如果你在具有较低API的设备上使用SDK工具23运行app build,你可能会得到NullPointerException。