2011-12-21 9 views
0

AlarmManager을 사용하여 시간대별로 이메일을 전송하는 것과 같은 하나의 응용 프로그램을 만들고 있습니다. 이 응용 프로그램에서 이메일 의도는 시간에 의해 완벽하게 제기. 이메일 의도를 높이기 위해 한 번 설정하면 작동합니다.내 앱에 BackgroundService 통합?

이벤트가 발생하기 전에 장치를 다시 시작하십시오. 그런 다음 앱이 작동해야합니다. 하지만 작동하지 않습니다.

무엇이 누락 되었습니까? 기기를 다시 시작한 후이 값을 올리려면 어떻게해야합니까?

답변

1

당신은 매니페스트 파일에서 작업을 <action android:name="android.intent.action.BOOT_COMPLETED" />BroadcastReceiver를 사용해야합니다. 그런 다음 서비스를 시작해야합니다.

+0

네, 맞습니다. 방금 "BroadcastReceiver"에 의해이 작업을 수행했으며 시간을 확인합니다. – Praveenkumar

2

나는 상태를 저장하려면 SharedPreferences를해야한다고 생각합니다. 다음 코드를 살펴본 후 SharedPreferences와 관련된 몇 가지 검색을 수행하십시오. 구현이 쉽습니다.

private TimePickerDialog.OnTimeSetListener mSettingsTimePickerListener = new TimePickerDialog.OnTimeSetListener() { 
    @Override 
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     sharedHour = hourOfDay; 
     sharedMinute = minute; 

     previousSharedHour = hourOfDay; 
     previousSharedMinute = minute; 

     try { 
      final Calendar c = Calendar.getInstance(); 
      c.add(Calendar.HOUR_OF_DAY, hourOfDay); 
      c.add(Calendar.MINUTE, minute); 
      objDate = c.getTime(); 

      SharedPreferences alarmSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
      SharedPreferences.Editor prefEditor = alarmSettings.edit(); 

      prefEditor.remove(PREFS_NAME); 
      prefEditor.commit(); 

      alarmSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); 
      prefEditor = alarmSettings.edit(); 

      System.out.println("In seting dialog : "+hourOfDay +" : "+minute); 
      prefEditor.putInt("sharedHour", hourOfDay); 
      prefEditor.putInt("sharedMinute", minute); 
      prefEditor.commit(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
};