我想从我的 JavaFX 应用程序定期执行任务。该任务从远程流中提取数据。
虽然我知道我可以使用计时器,如下所示:
JavaFX周期性后台任务 https://stackoverflow.com/questions/9966136/javafx-periodic-background-task
我相信这应该可以使用 JavaFX 来完成Service http://docs.oracle.com/javafx/2/api/javafx/concurrent/Service.html目的。 Javadoc 中提到了关于指定自定义执行器(调度线程池执行器 http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html我想到这里),但是如何指定期限和延迟呢?理想情况下,这将使用服务的通常启动、重置、重新启动和状态绑定......
public class MyFirstLineService extends Service<String> {
private StringProperty url = new SimpleStringProperty(this, "url");
public final void setUrl(String value) { url.set(value); }
public final String getUrl() { return url.get(); }
public final StringProperty urlProperty() { return url; }
public MyFirstLineService() {
setExecutor(new ScheduledThreadPoolExecutor());
}
protected Task createTask() {
final String _url = getUrl();
return new Task<String>() {
protected String call() throws Exception {
URL u = new URL(_url);
BufferedReader in = new BufferedReader(
new InputStreamReader(u.openStream()));
String result = in.readLine();
in.close();
return result;
}
};
}
}
请求了 ScheduledServiceJavaFX 问题跟踪器 - RT18702 http://javafx-jira.kenai.com/browse/RT-18702.
追踪器包括初步实施的来源 http://javafx-jira.kenai.com/secure/attachment/27545/ScheduledService.java尚未合并到 2.2 分支中。如果需要,您可以查看该来源,看看它是否有助于改进您的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)