как вы создаете часы, которые вы устанавливаете, когда они начинаются и когда они заканчиваются

#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» с помощью кодов «Обслуживания».