#android #android-widget
#Android #android-виджет
Вопрос:
Я не знаю, как определить время, в течение которого вы можете установить время, когда что-то начинается, до его окончания. например, вы устанавливаете в календаре, в котором вы устанавливаете время с момента начала до того, где оно заканчивается в java. может кто-нибудь помочь мне с просьбами?
Комментарии:
1. Для чего именно вы этого хотите?
2. Я хочу создать программу, в которую вы можете ввести его расписание, мне нужны часы, которые будут работать между двумя точками, в которых указано, когда они начинаются и заканчиваются.
Ответ №1:
Используйте комбинацию Timer и TimerTask :
TimerTask task = new TimerTask() {
@Override
public void run() {
// do stuff
}
};
Timer timer = new Timer();
timer.schedule(task, /*when*/);
Обратитесь к schedule ()
Ответ №2:
Вы можете использовать AlarmManager
в Android для выполнения задач такого рода. Пожалуйста, не забудьте зарегистрировать Broadcast Receiver
in AndroidManifest.xml
, чтобы вы могли правильно использовать приведенный ниже код:
Для реального примера приведенный ниже фрагмент кода будет транслировать и намерение, специфичное для моего приложения. Я получу намерение и запущу фоновую службу, которая выполняет функции, специфичные для моего приложения. Нравится :
Intent intent = new Intent(this, ServiceStarter.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
long scheduledTime = System.currentTimeMillis() AlarmManager.INTERVAL_FIFTEEN_MINUTES;
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, scheduledTime,
sender);
И внутри моего ServiceStarter
я сделаю что-то вроде этого:
public class ServiceStarter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent;
serviceIntent = new Intent(context, ActualService.class);
context.startService(serviceIntent);
}
}
Для завершения задачи аналогичные строки кода для AlarmManager
будут выполняться только в ServiceStopper
том, что нам нужно остановить службу, например:
public class ServiceStopper extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent;
serviceIntent = new Intent(context, ActualService.class);
context.stopService(serviceIntent);
}
}
Пожалуйста, вернитесь, если вам нужно что-то еще.
Комментарии:
1. большое вам спасибо, но, к сожалению, я не заставил это работать. в «ActualService» есть ошибки, я не знаю, что делать. пытались создавать разные java-файлы в «src» с помощью кодов «Обслуживания».