Java 如何在特定时间执行任务?

Java 如何在特定时间执行任务?,java,android,scheduled-tasks,Java,Android,Scheduled Tasks,我需要一个可以执行某些任务的命令,比如说每天早上7点。 可能吗? 如果您能给我一些代码示例,我将不胜感激 谢谢大家! 问题是您的应用程序将不会全天候运行。 但如果是这样,您可以使用Java的计时器类来实现您的任务 是的,您需要AlarmManager类,创建一个intent和一个calendar对象(设置为您想要的时间),然后使用AlarmManager在该时间运行intent(使用setRepeating使其每天重复) “请提供代码”问题不是一个好主意,所以…谢谢!但是我需要这个类来扩展


我需要一个可以执行某些任务的命令,比如说每天早上7点。
可能吗?
如果您能给我一些代码示例,我将不胜感激

谢谢大家!

问题是您的应用程序将不会全天候运行。

但如果是这样,您可以使用Java的计时器类来实现您的任务

是的,您需要AlarmManager类,创建一个intent和一个calendar对象(设置为您想要的时间),然后使用AlarmManager在该时间运行intent(使用setRepeating使其每天重复)


“请提供代码”问题不是一个好主意,所以…谢谢!但是我需要这个类来扩展什么吗?AlarmManager是一个系统类,所以你可以把这个代码放到你的主类中去使用它,不需要扩展任何东西。我的意思是。它必须延长服务吗?当它不能扩展任何内容时,它就不起作用了。对不起,我不太清楚你的意思。AlarmManager在指定的特定时间运行PendingEvent。您可以将PendingEvent设置为运行启动活动或启动服务的意图,无论您想要什么。在我的示例中,我启动了一个服务,“some_Service.class”,在该类中,您确实需要扩展服务。如果您不想使用服务,也可以使用扩展活动的类,在这种情况下,您可以将PendingEvent更改为.getActivity()。.getBroadcast(扩展BroadcastReceiver)也是如此
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);