電子書籍の厳選無料作品が豊富!

Javaの常駐ソフト実行中のスリープについて

Javaを利用して、windows7上に常駐するソフトを作りました。
そのソフトは3分毎にあるバッチファイルを実行するものです。

1) 先日、そのソフトを常駐して24時間ほどほったらかしにしました。

2) そしてパソコンを見たところシステムがスリープしていました。

3) あ、やべー と思いwindows7を復帰させると、スリープしてから溜まっていた分の実行数が一気にバババッと立ち上がりました。

==============================
Javaでwindows7のシステムスリープが感知されると、Javaの

ScheduledExecutorService scheduler1 = Executors.newSingleThreadScheduledExecutor();
scheduler1.scheduleAtFixedRate( task1, 0, 2 * 60 * 1000, TimeUnit.MILLISECONDS);

の部分をシステム復帰するまで中断させたいのです。

なにか良い方法はないでしょうか?

A 回答 (1件)

>Javaでwindows7のシステムスリープが感知される


この実現がかなり高コストです。

http://mg6t.blogspot.jp/2008/06/blog-post.html
JNIでどうたらこうたら…。

scheduler1.getQueue().isEmpty()==trueならば、タスクを投入できるようにするか、
前回実行時間を保存しておいて、3分以内にはスレッドを実行しないようにrunを実装するか…。

アイデア出し程度で申し訳ないです。
    • good
    • 0
この回答へのお礼

ありがとうございます、スリープ時に実行回数がたまるのはみんな困っているのではないかと思ったんですが、なかなか難しいですねー

大変参考になりました、ありがとうございました。

お礼日時:2013/07/09 13:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!