使警报在开机后幸存下来

make alarms survive boot

我创建了一个应用程序,它允许用户输入作业截止日期,然后通知作业已到期,这一切都很好,但是,我找不到一个明确的例子来说明如何使警报在重启后仍然存在。
接收器上的数据库内容只是用特定的分配信息填充通知。警报本身不保存在数据库中,时间和日期由用户输入设置并直接传递给警报管理器。
警报创建页面:

Long nIdLong = System.currentTimeMillis();
            String nId = nIdLong.toString();
    final int _id = (int) System.currentTimeMillis();

                Intent alarmIntent = new Intent(context, AlarmReceiver.class);
                alarmIntent.putExtra("nID", nIdLong);
                // make sure the intent have id's
                PendingIntent pendingIntent = PendingIntent.getBroadcast(context, _id,  alarmIntent , 0);

                AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(getActivity().ALARM_SERVICE);
                alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent);

这是我的接收器:

public void onReceive(Context context, Intent intent)
    {
        long dbId = intent.getLongExtra("nID", 0);
        String notificationId = Long.toString(dbId);


        Log.i("App", "called receiver method");
        try{

            userDbHelper = new UserDbHelper(context.getApplicationContext());
            sqLiteDatabase = userDbHelper.getReadableDatabase();
            cursor = userDbHelper.getAssignmentNotification(notificationId, sqLiteDatabase);
            if (cursor.moveToFirst()) {
                do {

                    id = cursor.getString(0);
                    name = cursor.getString(1);
                    subject = cursor.getString(2);
                    date = cursor.getString(3);
                    time = cursor.getString(4);

                } while (cursor.moveToNext());
            }
            NotificationGenerator.generateNotification(context, date, time, name, subject);
        }catch(Exception e){
            e.printStackTrace();
        }
    }

https://examples.javacodegeeks.com/android/core/activity/android-start-service-boot-example/ 此示例说明如何在启动时启动服务,将警报保存到数据库中,并让启动服务 运行 通过所有已保存的警报,以便在每次启动时重新创建它们。