1
私は、1つの「連続アラーム」で複数のアラームを設定できる連続アラームアプリケーションを作成しています。単一のアラームはそれぞれ、ArrayListに格納されます。私は、ユーザーがアプリを閉じると、設定されたアラームのUIが、アプリケーションを再開したときに再び表示されるようにしようとしています。アンドロイドがonStart()を呼び出すと、onStart()の後にコードが読み込まれないか、コード内にログがあるので知っています。どうしたの?AndroidのフラグメントがonStart()のコードを呼び出さない
@Override
public void onStart() {
super.onStart();
Log.e("asdfasdf", "onStart() called");
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("AlarmDataBase", Context.MODE_PRIVATE);
int toLoadSize = sharedPreferences.getInt("arraySize", 0);
for (int i = 0; i < toLoadSize; i++) {
ConsecAlarm toAdd = new ConsecAlarm();
toAdd.setFromHour(sharedPreferences.getInt(i + "fromHour", 7));
toAdd.setFromMinute(sharedPreferences.getInt(i + "fromMintue", 20));
toAdd.setFromAM(sharedPreferences.getBoolean(i + "fromAM", true));
toAdd.setToHour(sharedPreferences.getInt(i + "toHour", 7));
toAdd.setToMinute(sharedPreferences.getInt(i + "toMinute", 30));
toAdd.setToAM(sharedPreferences.getBoolean(i + "toAM", true));
toAdd.setInterval(sharedPreferences.getInt(i + "interval", 5));
int numAlarms = sharedPreferences.getInt(i + "numAlarms", 3);
toAdd.setNumAlarms(numAlarms);
for (int j = 0; j < numAlarms; j++) {
toAdd.addAlarmHour(sharedPreferences.getInt(i + "alarmHour" + j, 0));
toAdd.addAlarmMin(sharedPreferences.getInt(i + "alarmMin" + j, 0));
Log.e("asdfasdf", toAdd.getAlarmHour(i) + ":" + toAdd.getAlarmMin(i) + " loaded");
}
mConsecAlarms.add(toAdd);
}
updateUI();
}
@Override
public void onStop() {
super.onStop();
Log.e("asdfasdf", "onStop() called");
Collections.sort(mConsecAlarms, new Comparator<ConsecAlarm>() {
@Override
public int compare(ConsecAlarm o1, ConsecAlarm o2) {
return o1.getToHour() - o2.getToHour();
}
});
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("AlarmDatabase", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
int toSaveSize = mConsecAlarms.size();
editor.putInt("arraySize", toSaveSize);
for (int i = 0; i < toSaveSize; i++) {
editor.putInt(i + "fromHour", mConsecAlarms.get(i).getFromHour());
editor.putInt(i + "fromMinute", mConsecAlarms.get(i).getFromMinute());
editor.putBoolean(i + "fromAM", mConsecAlarms.get(i).isFromAM());
editor.putInt(i + "toHour", mConsecAlarms.get(i).getToHour());
editor.putInt(i + "toMinute", mConsecAlarms.get(i).getToMinute());
editor.putBoolean(i + "toAM", mConsecAlarms.get(i).isToAM());
editor.putInt(i + "interval", mConsecAlarms.get(i).getInterval());
int numAlarms = mConsecAlarms.get(i).getNumAlarms();
editor.putInt(i + "numAlarms", numAlarms);
for (int j = 0; j < numAlarms; j++) {
editor.putInt(i + "alarmHour" + j, mConsecAlarms.get(i).getAlarmHour(j));
editor.putInt(i + "alarmMin" + j, mConsecAlarms.get(i).getAlarmMin(j));
Log.e("asdfasdf", mConsecAlarms.get(i).getAlarmHour(j) + ":" + mConsecAlarms.get(i).getAlarmMin(j) + " saved");
}
}
editor.commit();
}
ごまかしてください。ありがとう – Dulk