如何在Android中让服务在特定时间运行?

如何在Android中让服务在特定时间运行?,android,service,Android,Service,因此,我有以下代码,以便在每天早上7:32启动服务: Calendar cur_cal = new GregorianCalendar(); cur_cal.setTimeInMillis(System.currentTimeMillis()); Calendar cal = new GregorianCalendar(); cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR)); cal.set(Calendar.H

因此,我有以下代码,以便在每天早上7:32启动服务:

Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());

Calendar cal = new GregorianCalendar();

cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.set(Calendar.HOUR_OF_DAY, 7);
cal.set(Calendar.MINUTE, 32);


Intent start = new Intent(getActivity(), Services.class);
PendingIntent PI = PendingIntent.getService(getActivity(), 0, start, 0);
AlarmManager am = (AlarmManager)getActivity().getSystemService(getActivity().ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 10*1000, PI);
getActivity().startService(start);

但它似乎不起作用,它没有在指定的时间启动服务。有人能帮我吗?

首先,你的重复不起作用,因为你把间隔设置为10秒。要使其每天发生,您需要1000*60*60*24。]


第二,添加到您的日历是关闭的。您需要
cur\u cal.add(Calendar.DAY\u OF\u YEAR,1)
。这将转移到明天。您所做的基本上是将其乘以2。

定义“不起作用”。没有启动任何服务,没有启动正确的服务,没有在正确的时间启动,等等?@Gabeschen好的,请参阅编辑的帖子:)它工作了,但在我关闭应用程序时它没有运行服务