public class WorkOrderAlarmManager {
 
 private static Context mContext;
 private static String prefs_name = "pref";
 private static int mode = Context.MODE_PRIVATE;
 
 public WorkOrderAlarmManager(Context context) {
  mContext = context;
 }
 public void jalarm(long targetTime) {
  Date t = new Date(); // Date객체생성
  SharedPreferences prefs = mContext.getSharedPreferences(prefs_name, mode); // sharedpreference 객체 생성
  long jTime = prefs.getLong("jt", 0); // sharedpreference의 값을 받아온다.
  t.setTime(targetTime + jTime); // 알람 울릴시간 설정
  Intent intent = new Intent(mContext.getApplicationContext(), // intent객체 생성
    WorkOrderAlarmReceiver.class);
  intent.putExtra("jalarm", "1"); // 서로 다른 notification을 나타내기위한 id
  PendingIntent sender = PendingIntent.getBroadcast(mContext, 3, intent, 0); // getbroadcast로 수신
  AlarmManager am = (AlarmManager) mContext
    .getSystemService(Context.ALARM_SERVICE); // 알람매니저 사용하기 위해 객체 생성
  am.set(AlarmManager.RTC_WAKEUP, t.getTime(), sender); // 알람매니저 셋팅
  SharedPreferences.Editor ed = prefs.edit();
  ed.putLong("jalarm_getTime", t.getTime());
  ed.commit();
 }

public class WorkOrderAlarmReceiver extends BroadcastReceiver {
 private final static int NOTIFICATION_ID = 0;
 private String prefs_name = "pref";
 private int mode = Context.MODE_PRIVATE;

 @Override
 public void onReceive(Context context, Intent intent) {
  
  String action = intent.getAction();
  if(action.equals(android.content.Intent.ACTION_BOOT_COMPLETED)){
   SharedPreferences prefs = context.getSharedPreferences(prefs_name, mode);
   long time = prefs.getLong("jalarm_getTime", 0);
   long time2 = prefs.getLong("alarm_getTime", 0);
   PendingIntent sender = PendingIntent.getBroadcast(context, 3, intent, 0); // getbroadcast로 수신
   AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); // 알람매니저 사용하기 위해 객체 생성
   am.set(AlarmManager.RTC_WAKEUP, time, sender); // 알람매니저 셋팅
   PendingIntent sender2 = PendingIntent.getBroadcast(context, 3, intent, 0);
   am.set(AlarmManager.RTC_WAKEUP, time2, sender2); // 알람매니저 셋팅
  }

알람매니저에 등록할 시간을 Sharedpreference로 저장하고 ACTION_BOOT_COMPLETED를 사용하여 부팅됬을때

그 시간값을 가져와 다시 알람매니저에 등록하도록 해봤습니다. 그런데 여기서

if(action.equals(android.content.Intent.ACTION_BOOT_COMPLETED))여기서 nullpointerexception이 발생합니다.

그이유를 잘 모르겠습니다. 고수분들 도와주세요

그리고 이렇게 하는게 맞는것인지 조언좀 부탁드립니다..혹시나 초보자가 할정도로 더 쉬운방법이 있으면 조언해주세요~