Я создаю приложение в 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.");
}
}
, но он работает ПОСЛЕ сна, а не раньше.