ユーザが選択した時点でアクティビティを開くアラームがあります。ユーザーがスタートボタンを押すと、アラームはうまくいっていますが、再起動後にキャンセルされます。私はどこにでも見てきました。そして、私はサービスを利用すべきだと言います。サービスを使用せずに再起動後にアラームをオンにすることは可能ですか?私はコーディングに新しいので、あなたがしなければならないことを崩壊してください。あなた再起動時にAlarmManagerがリセットされる
public class MainActivity extends AppCompatActivity {
Button disable;
Button start;
TimePicker timePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timePicker = (TimePicker) findViewById(R.id.timePicker);
disable = (Button) findViewById(R.id.disable_alarm);
start = (Button) findViewById(R.id.button);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
calendar.set(Calendar.MINUTE, timePicker.getMinute());
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);
}
});
disable.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);
}
});
に感謝し、ブロードキャストレシーバは、電話がシャットダウンされた後にキャンセルされ
public class notification extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent scheduledIntent = new Intent(context, pop_up2.class);
scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(scheduledIntent);}}
おかげ
システムが起動し、そこから 'AlarmManager'イベントをリセットする必要があるときに、' BroadcastReceiver'が必要です。 – Shaishav
リセットされた場合、ユーザーはアラームを消すかどうかに関係なく、アラームはオフになります。私は、ユーザーがそれを望んでいる場合、アラームが欲しいだけです。 – DroidGalaxy
ええ、私は通常、「SharedPreference」に自分のアラームを保存し、消えたらすぐにそこから削除します。したがって、あなたの 'レシーバー'では、あなたの好みにあるすべてのアラームをスケジュールするだけです。もちろんこれはあなたのユースケースに依存します。 – Shaishav