Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.seven.lctimer;
- import java.util.Calendar;
- import android.app.AlarmManager;
- import android.app.PendingIntent;
- import android.app.Service;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.content.SharedPreferences;
- import android.os.IBinder;
- import android.os.SystemClock;
- import android.util.Log;
- import com.seven.lctimer.PackageReceiver;
- public class AlarmService extends Service {
- boolean mQuit; // 서비스 작동 여부
- boolean mSwc; // 알림 스위치 체크
- boolean mSwc2; // 소리 스위치 체크
- private PackageReceiver pReceiver;
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
- @Override
- public int onStartCommand(Intent intent, int flags, int startId) {
- releaseAlarm();
- Log.d("service","onStartCommand 실행");
- getValue(); // 스위치 온 체크
- AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE); // 알람 서비스 등록
- Calendar calendar = Calendar.getInstance(); // 날짜
- PendingIntent sender; // Sender (??)
- if(mSwc == true)
- {
- registerRestartAlarm(true);
- Log.d("service","알람 등록");
- // 빛나시 등록 (오전)
- Intent ashley = new Intent(this, AshleyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 1, ashley, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 11);
- calendar.add(Calendar.MINUTE, 9);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 빛나시 등록 (오후)
- Intent ashleyPM = new Intent(this, AshleyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 2, ashleyPM, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 23);
- calendar.add(Calendar.MINUTE, 9);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 리세시 등록 (오전)
- Intent rise = new Intent(this, RiseAlarm.class);
- sender = PendingIntent.getBroadcast(this, 3, rise, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 8);
- calendar.add(Calendar.MINUTE, 16);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 리세시 등록 (오후)
- Intent risePM = new Intent(this, RiseAlarm.class);
- sender = PendingIntent.getBroadcast(this, 4, risePM, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 20);
- calendar.add(Calendar.MINUTE, 16);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 은비시 등록 (오전)
- Intent eunb = new Intent(this, EunBAlarm.class);
- sender = PendingIntent.getBroadcast(this, 5, eunb, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 11);
- calendar.add(Calendar.MINUTE, 23);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 은비시 등록 (오후)
- Intent eunbPM = new Intent(this, EunBAlarm.class);
- sender = PendingIntent.getBroadcast(this, 6, eunbPM, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 23);
- calendar.add(Calendar.MINUTE, 23);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 소정시 등록 (오전)
- Intent sojung = new Intent(this, SojungAlarm.class);
- sender = PendingIntent.getBroadcast(this, 7, sojung, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 9);
- calendar.add(Calendar.MINUTE, 3);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- // 소정시 등록 (오후)
- Intent sojungPM = new Intent(this, SojungAlarm.class);
- sender = PendingIntent.getBroadcast(this, 8, sojungPM, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 21);
- calendar.add(Calendar.MINUTE, 3);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- //주미시 등록 (오전)
- Intent zuny = new Intent(this, ZunyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 9, zuny, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 12);
- calendar.add(Calendar.MINUTE, 8);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- //주미시 등록 (오후)
- Intent zunyPM = new Intent(this, ZunyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 10, zunyPM, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 0);
- calendar.add(Calendar.MINUTE, 8);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- //데뷔시 등록 (오전)
- Intent debut = new Intent(this, DebutAlarm.class);
- sender = PendingIntent.getBroadcast(this, 11, debut, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 3);
- calendar.add(Calendar.MINUTE, 7);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- //데뷔시 등록 (오후)
- Intent debutPM = new Intent(this, DebutAlarm.class);
- sender = PendingIntent.getBroadcast(this, 12, debutPM, 0);
- calendar.add(Calendar.HOUR_OF_DAY, 15);
- calendar.add(Calendar.MINUTE, 7);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- //test
- Intent test = new Intent(this, DebutAlarm.class);
- sender = PendingIntent.getBroadcast(this, 13, test, 0);
- calendar.set(Calendar.HOUR_OF_DAY, 12);
- calendar.set(Calendar.MINUTE, 46);
- alarm.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, sender);
- }
- return START_REDELIVER_INTENT;
- }
- @Override
- public void onCreate() {
- Log.d("service","onCreate 실행");
- //releaseAlarm();
- pReceiver = new PackageReceiver();
- IntentFilter pFilter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
- pFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
- pFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
- pFilter.addDataScheme("package");
- registerReceiver(pReceiver, pFilter);
- }
- @Override
- public void onDestroy() {
- Log.d("service","onDestroy 실행");
- registerRestartAlarm(false);
- releaseAlarm();
- if(pReceiver != null)
- unregisterReceiver(pReceiver);
- }
- public void getValue() {
- SharedPreferences switchs = getSharedPreferences("switchs", MODE_PRIVATE);
- switchs.getBoolean("switchs", mSwc);
- }
- private void releaseAlarm(){
- Log.d("service","알람 제거");
- AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE); // 알람 서비스 등록
- PendingIntent sender; // Sender (??)
- Intent ashley = new Intent(this, AshleyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 1, ashley, 0);
- alarm.cancel(sender);
- Intent ashleyPM = new Intent(this, AshleyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 2, ashleyPM, 0);
- alarm.cancel(sender);
- Intent rise = new Intent(this, RiseAlarm.class);
- sender = PendingIntent.getBroadcast(this, 3, rise, 0);
- alarm.cancel(sender);
- Intent risePM = new Intent(this, RiseAlarm.class);
- sender = PendingIntent.getBroadcast(this, 4, risePM, 0);
- alarm.cancel(sender);
- Intent eunb = new Intent(this, EunBAlarm.class);
- sender = PendingIntent.getBroadcast(this, 5, eunb, 0);
- alarm.cancel(sender);
- Intent eunbPM = new Intent(this, EunBAlarm.class);
- sender = PendingIntent.getBroadcast(this, 6, eunbPM, 0);
- alarm.cancel(sender);
- Intent sojung = new Intent(this, SojungAlarm.class);
- sender = PendingIntent.getBroadcast(this, 7, sojung, 0);
- alarm.cancel(sender);
- Intent sojungPM = new Intent(this, SojungAlarm.class);
- sender = PendingIntent.getBroadcast(this, 8, sojungPM, 0);
- alarm.cancel(sender);
- Intent zuny = new Intent(this, ZunyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 9, zuny, 0);
- alarm.cancel(sender);
- Intent zunyPM = new Intent(this, ZunyAlarm.class);
- sender = PendingIntent.getBroadcast(this, 10, zunyPM, 0);
- alarm.cancel(sender);
- Intent debut = new Intent(this, DebutAlarm.class);
- sender = PendingIntent.getBroadcast(this, 11, debut, 0);
- alarm.cancel(sender);
- Intent debutPM = new Intent(this, DebutAlarm.class);
- sender = PendingIntent.getBroadcast(this, 12, debutPM, 0);
- alarm.cancel(sender);
- }
- // 자동 서비스 재시작
- public void registerRestartAlarm(boolean isOn){
- Intent intent = new Intent(this, RestartReceiver.class);
- intent.setAction(RestartReceiver.ACTION_RESTART_SERVICE);
- PendingIntent sender = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
- AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
- if(isOn){
- am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 1000, 10000, sender);
- }else{
- am.cancel(sender);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement