2012-01-29 69 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