Как сбросить будильник после перезагрузки Android Studio

Я делаю приложение для будильника, которое открывает действие в зависимости от времени, выбранного пользователем. Все работает отлично, но будильник сбрасывается при перезагрузке. Я сделал ON BOOT RECEIVER, который работает, но я хочу перезапустить будильник, только если пользователь этого хочет. Я пытался использовать .putExtra для отправки данных в трансляцию ON BOOT, но эти данные сбрасываются после перезагрузки. Я пытался установить условия с помощью SharedPreference в трансляции, но я застрял в том, как его использовать. Основная деятельность

public class MainActivity extends AppCompatActivity {
NumberPicker hour;
NumberPicker min;
Button start;
Button stop;
TextView number;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    hour = (NumberPicker) findViewById(R.id.hour);
    min = (NumberPicker) findViewById(R.id.min);
    start = (Button) findViewById(R.id.starter);
    stop = (Button) findViewById(R.id.stopper);

    number = (TextView) findViewById(R.id.textView);

    hour.setMinValue(0);
    hour.setMaxValue(23);
    hour.setWrapSelectorWheel(false);

    min.setMinValue(1);
    min.setMaxValue(59);
    min.setWrapSelectorWheel(false);

    SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
    final int myIntValue = sp.getInt("your_int_key", -1);

    Intent myIntent = new Intent(MainActivity.this, BootCompletedReceiver.class);

    if (myIntValue == 1){

        myIntent.putExtra("alarm", 3);
        sendBroadcast(myIntent);

    }
    else if (myIntValue == 2){

       myIntent.putExtra("alarm", 4);
       sendBroadcast(myIntent);

    }
    else
    { stop.setBackgroundColor(Color.RED); }


    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.HOUR_OF_DAY, hour.getValue());
            calendar.set(Calendar.MINUTE, min.getValue());

            Intent intent = new Intent(getApplicationContext(),notification.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 120*1000, pendingIntent);


            SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = sp.edit();
            editor.putInt("your_int_key", 1);
            editor.apply();

        }
    });

    stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(),notification.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
            alarmManager.cancel(pendingIntent);

            SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
            SharedPreferences.Editor editor = sp.edit();
            editor.putInt("your_int_key", 2);
            editor.apply();

        }
    });

}}

Транслировать

public class BootCompletedReceiver extends BroadcastReceiver {



@Override
public void onReceive(Context context, Intent intent) {

 if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {

        Intent i = new Intent(context, RestartAlarmsService.class);

        //ComponentName service = context.startService(i);
        context.startService(i);


    }
}}

обслуживание

public class RestartAlarmsService extends Service {

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}
public int onStartCommand(Intent intent, int flags, int startId) {

    //code to restart Alarm

    return START_NOT_STICKY;
}

}

Спасибо.


person DroidGalaxy    schedule 12.09.2016    source источник
comment
Еще раз привет @droidgalaxy В чем твоя проблема? Вы не можете хранить информацию о тревогах в общих настройках?   -  person Marat    schedule 12.09.2016
comment
Привет. Я пытался делать то, что ты мне говорил в последние дни. не мог найти способ. Я думал об использовании переменных, которые изменяют значение при включении и выключении будильника, затем передают это значение службе и устанавливают операторы if else для установки будильника. Это не сработало, поэтому я не уверен, что использовать, чтобы запускать только установленные будильники со временем, выбранным пользователем.   -  person DroidGalaxy    schedule 12.09.2016
comment
Вы хотите хранить только 1 будильник за раз или несколько будильников?   -  person Marat    schedule 12.09.2016
comment
Несколько будильников.   -  person DroidGalaxy    schedule 12.09.2016
comment
В этом случае я бы посоветовал вам использовать базу данных SQLite. Вам будет проще реализовать нужные функции с помощью SQLite. я бы еще код подсказал   -  person Marat    schedule 12.09.2016
comment
Вы знаете, где я могу пойти и узнать, как использовать это?   -  person DroidGalaxy    schedule 12.09.2016
comment
Вы можете перейти сюда stackoverflow.com/a/38282237/6272369 и найти ссылку на видеоруководство в конце моего отвечать.   -  person Marat    schedule 12.09.2016
comment
Я получил видео. Спасибо.   -  person DroidGalaxy    schedule 12.09.2016
comment
Нисколько. Если у вас возникнут какие-либо проблемы с проектированием вашей БД, дайте мне знать.   -  person Marat    schedule 12.09.2016
comment
@DroidGalaxy вы выполнили это для нескольких будильников?   -  person Rahul    schedule 29.12.2018