Обнаружить событие: система будет спать на каждой ОС - PullRequest
1 голос
/ 16 января 2020

Я создаю приложение в Java, которое нуждается в перехвате, когда система переходит в спящий режим / режим гибернации. Я знаю, что есть Java Native Access, где я могу поймать событие на Windows, но мне нужно решение для MacOS и Linux. Я видел метод подсчета времени и сравнивал его с текущим временем:

            while (true) {
                long sleepTil = System.currentTimeMillis() + pause + error;
                try {
                    Thread.sleep(pause);
                } catch (InterruptedException e) {
                }
                if (System.currentTimeMillis() > sleepTil) {
                    log.info("System was suspended");
                } else {
                    log.info("System was not suspended.");
                }
            }

, но он работает ПОСЛЕ сна, а не раньше.

...