2016-02-17 40 views
0

所以我有這樣的代碼,以便在每天上午07時32分啓動服務:如何使服務在Android的特定時間運行?

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

但它似乎沒有工作,它不會在指定時間啓動該服務。有人能幫我嗎?

+0

定義「不起作用」。不啓動任何服務,不啓動正確的服務,不能在正確的時間啓動等等? –

+0

@GabeSechan好吧,看到編輯過的文章:) –

回答

0

那麼,首先你的重複將無法工作,因爲你將間隔設置爲10秒。要讓它每天都發生,你需要1000 * 60 * 60 * 24。]

其次,添加到您的日曆已關閉。你想要cur_cal.add(Calendar.DAY_OF_YEAR, 1)。這將把它移到明天。你正在做的是基本上乘以2.

+0

它工作,但它關閉應用程序時不運行服務 –

相關問題