2012-05-07 4 views
1

Я разрабатываю приложение, в котором пользователю сначала будет представлен простой пользовательский интерфейс с днями и таймингами. пользователь будет выбирать тайминги против каждого дня. и нажмите кнопку «Готово». Теперь это приведет к срабатыванию служб будильника для запуска каждый день в соответствии с выбранными таймингами. (и выключит Bluetooth-устройство в эти тайминги). прямо сейчас я использую отдельную услугу за каждый день (инстинкт новичка). Приложение работает нормально. Теперь я хочу, чтобы при нажатии пользователем кнопки «Готово» приложение должно продолжать работать в фоновом режиме, и когда пользователь снова нажимает значок приложения и нажимает кнопку «По умолчанию», он должен останавливать все службы. Как я могу это достичь? Код для запуска каждого воскресенья следующий:Активность и Сервис в том же андроидном приложении

time interval of 7 x days for the alarm to repeat every 7 days 
    long interval = 1000 * 60 * 60 * 24 * 7; // to make the alarm repeat at every 7 days 

//getting values for hours, mins and AM/PM from the spinner boxes for sunday 
    index = sunHr.getSelectedItemPosition(); 
int sunHrInt = Integer.parseInt(hrList[index]); 


index = spinnerSunMin.getSelectedItemPosition(); 
int sunMinInt = Integer.parseInt(minList[index]); 

index = spinnerSunAmPm.getSelectedItemPosition(); 


    //conversion of time to 24 hrs format 
if (ampmList[index] == "AM") //(convert to 24 hr format) 
{ 
    if (sunHrInt == 12) 
    { 
     sunHrInt = 0; 
    } 
    else 
    { 
     if (sunHrInt != 12) 
     sunHrInt = sunHrInt + 12; 
    } 
} 

    //setting current calender 
    Calendar cur_cal = new GregorianCalendar(); 
     cur_cal.setTimeInMillis(System.currentTimeMillis());//set the current time and date for this calendar 
    //setting calender for sunday 
     Calendar calSun = new GregorianCalendar(); 
     calSun.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR)); 
     calSun.set(Calendar.HOUR_OF_DAY, sunHrInt); 
     calSun.set(Calendar.MINUTE,sunMinInt); 
     calSun.set(Calendar.SECOND, 0); 
     calSun.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND)); 
     calSun.set(Calendar.DATE, cur_cal.get(Calendar.DATE)); 
     calSun.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH)); 

     //finding out when the sunday is to occur from today 

    days = 8 - calSun.get(Calendar.DAY_OF_WEEK); // how many days until Sunday 

     if (days >= 7) 
     { 
      days = days - 7; 
     } 

     calSun.add(Calendar.DATE, days); 

     //finally triggering the intent 
Intent myIntentSun = new Intent(AndroidAlarmService.this, SunOffAlarmService.class); 
      pendingIntentSun = PendingIntent.getService(AndroidAlarmService.this, 0, myIntentSun, 0); 
      AlarmManager alarmManagerSun = (AlarmManager)getSystemService(ALARM_SERVICE); 
      alarmManagerSun.set(AlarmManager.RTC_WAKEUP, calSun.getTimeInMillis(), pendingIntentSun); 
+0

Вы уже делаете то, что хотите, поскольку вы сказали, что создали пользовательский интерфейс и службу на каждый день, вы можете упростить его, создав пользовательский интерфейс и единую службу для обработки всех связанных событий в вашей службе. Используйте предпочтение для хранения пользовательского выбора, и на основе настроек вы можете сделать свою услугу. В чем проблема? – Sandeep

+0

в порядке. позвольте мне объяснить, где проблема. Я запускаю приложение на эмуляторе, с помощью которого проверяет, работает ли служба в определенный день и время (показывая Toasted msg, поскольку эмулятор не поддерживает синий зуб, который я могу отключить и посмотреть). Теперь мой вопрос заключается в том, что мои службы все еще будут работать, когда пользователь выйдет на дом или на любой другой экран мобильного устройства? если да, то почему мне нужно предпочтение? – learner

+0

yes service - фоновый процесс, который всегда работает в фоновом режиме, в то время как пользователь использует другой материал для мобильных устройств ... и предпочтение необходимо для хранения пользовательских настроек, то есть другое, что не связано с функциональностью службы ... – Sandeep

ответ

-2

Используйте настройки, чтобы сохранить значения и попробовать. это может помочь вам

+0

не могли бы вы сделать его немного более сложным? – learner

Смежные вопросы