在android中的特定时间调用服务

时间:2013-06-10 06:59:52

标签: android

我在后台运行服务 我想在特定的时间间隔内拨打这项服务 如果用户提供值10,20,30,则服务应在接受10分钟,20分钟和30分钟后调用。

我怎么能做上面的事情?

3 个答案:

答案 0 :(得分:1)

AlarmManager会帮助你:)

它允许您设置计划以在指定的时间范围内启动应用程序的组件

更新

要实例化将在实例化后的特定时间段内发挥作用的AlarmManager,请使用setRepeating()方法和PERIOD参数添加到SystemClock.elapsedRealime()进行配置:

AlarmManager mgr = (AlarmManager)getSystemService(ALARM_SERVICE);
mgr.setRepeating(AlarmManager.ELAPSED_REALTIME,
                     SystemClock.elapsedRealtime() + PERIOD, PERIOD, pi); // Here PERIOD is a value specified by you as PendingIntent object

答案 1 :(得分:0)

您可以设置Alarm以特定间隔触发Intent。如果警报在准确时间运行并不重要,您也可以设置不准确的警报。

答案 2 :(得分:0)

Calendar startTime = Calendar.getInstance();
        startTime.set(Calendar.HOUR_OF_DAY, 10);
        startTime.set(Calendar.MINUTE, 20);
        startTime.set(Calendar.SECOND, 25);

        Intent dailyQuotes = new Intent(getActivity(), DailyQuotesService.class);
        AlarmManager am = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);
        PendingIntent pi = PendingIntent.getService(getActivity(), 0, dailyQuotes, 0);
        am.setInexactRepeating(AlarmManager.RTC_WAKEUP, startTime.getTimeInMillis(), 30000, pi);

这是我的代码,它在指定的时间完全调用我的服务。然后每30秒重复一次。