2017-03-08 69 views
1

我正在制作一个连续的闹钟应用程序,允许用户在一个单一的“连续闹钟”中设置多个闹钟。每个单独的警报都存储在ArrayList中。我试图让它在用户关闭应用程序时,设置的警报UI在重新打开应用程序时将显示备份。当android调用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(); 
} 

回答

0

您提交了片段吗?这是你提交后调用它

+0

请你详细说明吗?谢谢 – Dulk