我有兴趣使用Java 7 SDK中的一些NIO2功能(特别是文件系统观察者),但是我不想为Java 7编译我的类并排除Java 6运行时.主要是因为我希望保持与Mac OS X的兼容性,还因为我不想强迫我的用户升级.
这可能吗?最好的方法是什么?任何链接或示例?
以下是我可以想象的一些方法:使用不同的编译器编译类文件并根据Java版本动态加载它?或者也许使用反射?或者也许只有Java 7的编译器设置来生成Java 6兼容的类?
我正在寻找一个不会变成丑陋混乱的解决方案:),所以理想情况下我可以编写两个接口实现,一个使用新功能,一个不使用,然后动态选择一个而不必进行反射调用到处都是.
我要求我需要检查文件'A'中的no.of行,如果文件'A'超出我的限制,那么我需要将其内容复制到其他文件'B'然后清除文件的内容'一个'.
上面的任务我必须一直执行所以,我构建了"服务"来完成这个任务.(我想在后面运行这个).
从服务我启动一个线程来执行上述任务.(我在Service中有其他任务应该与任务并行运行).
我正在使用AlarmManager来保持我的"服务"活着.
底线是上面的任务将一直运行.到目前为止,我成功实现了我想要实现的目标.
但是我在LogCat输出中观察到它正在生成与GC相关的大量语句.
喜欢:
D/dalvikvm( 2579): GC_CONCURRENT freed 483K, 62% free 2608K/6727K, external 1628K/2108K, paused 2ms+2ms
D/dalvikvm( 2579): GC_CONCURRENT freed 469K, 62% free 2608K/6727K, external 1628K/2108K, paused 34ms+2ms
D/dalvikvm( 2579): GC_CONCURRENT freed 466K, 62% free 2608K/6727K, external 1628K/2108K, paused 1ms+2ms
D/dalvikvm( 2579): GC_CONCURRENT freed 472K, 62% free 2609K/6727K, external 1628K/2108K, paused 7ms+2ms
D/dalvikvm( 2579): GC_CONCURRENT freed 473K, 62% free 2607K/6727K, external 1628K/2108K, paused 2ms+1ms
D/dalvikvm( 2579): GC_CONCURRENT freed 473K, 62% free 2607K/6727K, external 1628K/2108K, paused 1ms+2ms
D/dalvikvm( …
Run Code Online (Sandbox Code Playgroud)