2012-01-29 67 views
-1


我需要一個可以執行某些操作的命令,讓我們每天早上7點說。
這可能嗎?
我將不勝感激,如果你能給我一些代碼示例
謝謝!如何在特定時間執行任務?

+0

'請提供代碼'問題不是一個好主意,所以... ... – home 2012-01-29 13:00:37

回答

1

是的,你需要AlarmManager類,創建一個意圖和一個日曆對象(設置爲你想要的時間),然後使用AlarmManager來運行這個意圖(使用setRepeating使它每天重複)

Intent intent = new Intent(getBaseContext(), 
           some_service.class); 
         PendingIntent pendingIntent = PendingIntent 
           .getService(getBaseContext(), 0, intent, 0); 


         AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
         // Cancel all previous alarms of the same type 
         alarmManager.cancel(pendingIntent); 


         Calendar calendar = Calendar.getInstance(); 
         Calendar currentDate = Calendar.getInstance(); 

         calendar.add(Calendar.HOUR, 24); 
         calendar.set(Calendar.HOUR_OF_DAY, 07); 
         calendar.set(Calendar.MINUTE, 00); 
         calendar.set(Calendar.SECOND, 00); 

         // Set alarm manager to run at selected time 
         // each day 
         alarmManager.setRepeating(AlarmManager.RTC, 
           calendar.getTimeInMillis(), 
           AlarmManager.INTERVAL_DAY, pendingIntent); 
+0

謝謝!但是我需要這個課程來擴展一些東西嗎? – 2012-01-29 16:31:35

+0

AlarmManager是一個系統類,所以你可以把這個代碼放到你的主類中去利用它,不需要擴展任何東西。 – 2012-01-29 16:40:01

+0

我的意思是。它是否需要擴展服務? 當它沒有延伸任何東西時它不起作用 – 2012-01-29 21:00:42

0

問題是您的應用程序將不會全天候運行。但事情是這樣的,你可以使用Java的Timer類來實現你的任務。 See Documentation here