如何在Android中让服务在特定时间运行?
因此,我有以下代码,以便在每天早上7:32启动服务:如何在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
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好的,请参阅编辑的帖子:)它工作了,但在我关闭应用程序时它没有运行服务