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

时间:2016-02-17 00:35:54

标签: 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.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);

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

1 个答案:

答案 0 :(得分:0)

好吧,首先关闭你的重复将无法工作,因为你将间隔设置为10秒。为了实现这一目标,您需要1000 * 60 * 60 * 24.。

其次,您的日历添加已关闭。你想要cur_cal.add(Calendar.DAY_OF_YEAR, 1)。这将把它移到明天。你正在做的基本上是乘以2。