0

我有問題 我想控制FCM聲音按鈕布爾 我的布爾值被保存共享偏好 我做初始化偏偏這個錯誤機器人有錯誤「嘗試調用接口方法的空對象引用」 .featFCM

my error image

這是我的按鈕布爾保存源

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(); 
      } 
     } 
+0

哎呀不健全的,我不想recived FCM –

回答

0

您需要修改此代碼並在使用它之前對對象執行空檢查。

public static boolean getSettingnoti() { 
      if(mPrefs != null) 
       return mPrefs.getBoolean(noti,true); 
      /* put some log here */ 
      return false; 
     } 
+0

THX兄弟那是我的問題 –

+0

可以請你給予好評我的答案如果它解決您的問題。 –

+0

當然我會做upvote –

相關問題