Как выполнить задание в определенное время? - PullRequest
0 голосов
/ 29 января 2012


Мне нужна команда, которая может что-то выполнить, скажем, в 7:00 каждый день.
Является ли это возможным?
Буду признателен, если вы дадите мне несколько примеров кода.
Спасибо!

Ответы [ 2 ]

1 голос
/ 29 января 2012

Да, вам нужен класс 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 голосов
/ 29 января 2012

Проблема в том, что ваше приложение не будет работать 24/7.
Но в любом случае вы можете использовать класс таймера Java для реализации своей задачи. См. Документацию здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...