Приостановка программы до следующего запуска
У меня есть программа, которая использует шифрование AES256, как мне приостановить программу, когда компьютер перестанет работать или перезагрузиться, и продолжить работу в той же точке до следующей загрузки системы?
Этакий спящий режим программы.
2 ответа
Вы спросили три вещи здесь.
1- Как проверить, когда ОС перезагружается / выключается
Решение: Вы можете создать пустое невидимое окно и добавить к нему WindowListener. Он получит событие windowClosing на окнах.
Вы можете найти пример ЗДЕСЬ
2- Как я могу сохранить состояние процесса BruteForce и сделать паузу, чтобы начать снова, когда система выходит из строя.
Решение: здесь легко, вы должны сериализовать. Они сохранят состояние вашего класса / классов для десериализации при повторном запуске системы. Вы можете учиться ЗДЕСЬ
3- Как узнать, когда программа запускается снова, когда ОС загружается?
Решение: Вы можете поместить свою программу в процесс инициализации вашей ОС. Когда он запускается, вы проверяете, есть ли что-нибудь для десериализации и делаете это, восстанавливая процесс BruteForce.
Я бы согласился с частью 2 и 3 ответа @Thufir, но в отношении части 1 предполагается, что вы используете графический интерфейс.
Вместо этого я бы добавил в JVM хук отключения и записал состояние моей программы на этом этапе. Вы можете сделать это используя следующее:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// your serialization code goes here
}
});