Вы не можете. Apple не позволяет сторонним приложениям иметь регулярное фоновое время. Вам понадобится другой подход, например, реализовать молчаливое push-уведомление с вашего сервера, когда будет доступен новый контент.
Прошло некоторое время с тех пор, как я использовал Guice сейчас, но я помню что-то под названием «вспомогательная инъекция». Он позволяет определить фабричный метод, в котором заданы некоторые параметры, а некоторые - впрыскиваются. Вместо того, чтобы вводить Процессор, вы вводите фабрику процессора, которая имеет заводский метод, который принимает параметр anInputValue
.
Я указываю вам на javadoc FactoryProvider . Я считаю, что он должен быть вам полезен.
Вы можете получить желаемый эффект, введя «Поставщик», который может попросить во время выполнения предоставить вам процессор. Поставщики предоставляют способ отложить строительство объекта до тех пор, пока не запросят его.
Они описаны здесь в [Gu] здесь и здесь .
Поставщик будет выглядеть примерно так:
public class ProcessorProvider implements Provider<Processor> {
public Processor get() {
// construct and return a Processor
}
}
Поскольку провайдеры сконструированы и инъецированы Guice, они могут сами вставлять биты.
Ваш код будет выглядеть как
@Inject
public MyClass(ProcessorProvider processorProvider) {
this.processorProvider = processorProvider;
}
public boolean myMethod(String anInputValue) {
return processorProvider.get().isEnabled(anInputValue);
}
Требуется ли вашему процессору доступ к anInputValue
для всего жизненного цикла? Если нет, можно ли передать значение для вызова метода, который вы используете, например:
@Inject
public MyClass(Processor processor) {
this.processor = processor;
}
public boolean myMethod(String anInputValue) {
return processor.isEnabled(anInputValue);
}