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