몇 시간 동안 유휴 상태가 될 수있는 서비스를 만들지 마십시오. 그것은 말도 안돼. 당신이해야 할 일은
알람을 만드는 것입니다. 다음과 같습니다.
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 14);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
이것은 단지 Alarm API의 일반적인 예입니다. 필요에 맞게 조정해야합니다.
마침내 - 경보는 부팅시 복원력이 없습니다! 즉 : 어떤 이유로 든 사용자의 장치가 다운되면 모든 알람이 손실됩니다.
//manifest:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name=".MyBootReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
//java class
public class MyBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// restart alarms
}
}
}
: 앱은 당신이 RECEIVE_BOOT_COMPLETED라는 이벤트에 등록해야합니다 부팅 탄력되고 싶지 않는 경우가 보류중인 알람을 다시 시작 어디에
(후 부팅을 생각) 희망 하시겠습니까?
사용자의 배터리를 태우고 서비스를 실행하고 싶습니까? 하지만 안드로이드는 오래 실행중인 서비스를 죽일 수 있기 때문에 알람 관리자를 사용하는 것이 좋습니다. – brummfondel
사용자는 매 간격마다 활동을 시작한다는 것을 어떻게 알 수 있습니까? - 'AlarmManager'를 사용하여 버튼을 누른 후 인 텐트를 실행하십시오. 3 번 이상 알람을 설정하지 마십시오. 하나의 알람을 설정하고, 알람이 울리면 다음 알람을 설정하십시오. – SQLiteNoob
활동은 예를 들어 소리 재생을 시작할 수 있습니다. 하나 이상의 알람을 설정하는 것이 좋지 않습니까? – KKO