1

我正在开发一个应用程序,在该应用程序中,用户首先会看到一个带有日期和时间的简单 UI。用户将选择每天的时间。并单击“完成”按钮。现在,这将启动警报服务,根据选定的时间每天触发。(并将在这些时间关闭/打开蓝牙设备)。现在我每天都在使用单独的服务(初学者的直觉)。该应用程序运行良好。现在我想要的是,当用户单击“完成”按钮时,应用程序应该继续在后台运行,当用户再次单击应用程序图标并单击“默认”按钮时,它应该停止所有服务。我怎样才能做到这一点?每周日触发服务代码如下

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);
4

1 回答 1

-2

使用首选项来存储值并尝试一下。它可以帮助你

于 2012-05-07T04:21:13.387 回答