机器人有错误“尝试调用接口方法的空对象引用” .featFCM
问题描述:
我有问题 我想控制FCM声音按钮布尔 我的布尔值被保存共享偏好 我做初始化偏偏这个错误机器人有错误“尝试调用接口方法的空对象引用” .featFCM
这是我的按钮布尔保存源
private static SharedPreferences mPrefs;
private static SharedPreferences.Editor mPrefsEditor;
private static final String noti = "pref_key_noti_onoff";
public static void initPrefs(Context context) {
if(mPrefs == null){
mPrefs = context.getSharedPreferences(context.getPackageName() + "_preferences", 0);
mPrefsEditor = mPrefs.edit();
}
}
public static boolean getSettingnoti() {
return mPrefs.getBoolean(noti,true);
}
public static void setSettingnoti(boolean onoff) {
mPrefsEditor = mPrefs.edit();
mPrefsEditor.putBoolean(noti,onoff);
mPrefsEditor.commit();
}
这是我收到的FCM源
public void onMessageReceived(RemoteMessage remoteMessage) {
if (DataSaver.getSettingnoti()){}
else{
mPrefsEditor = mPrefs.edit();
mPrefsEditor.putBoolean(noti,true);
mPrefsEditor.commit();
}
if (DataSaver.getSettingnoti() == false) {
Log.d(TAG, "onMessageReceived: ");
} else {
Integer.parseInt(DataSaver.getSettingsttime());
Integer.parseInt(DataSaver.getSettingedtime());
Log.d(TAG, "onMessageReceived:" + Integer.parseInt(DataSaver.getSettingsttime()) + Integer.parseInt(DataSaver.getSettingedtime()));
sendPushNotification(remoteMessage.getData().get("message"));
set_alarm_badge();
}
}
答
您需要修改此代码并在使用它之前对对象执行空检查。
public static boolean getSettingnoti() {
if(mPrefs != null)
return mPrefs.getBoolean(noti,true);
/* put some log here */
return false;
}
+0
THX兄弟那是我的问题 –
+0
可以请你给予好评我的答案如果它解决您的问题。 –
+0
当然我会做upvote –
哎呀不健全的,我不想recived FCM –