Обновление времени со старта JVM

280
17 мая 2017, 06:26

Код, через который можно узнать время прошедшее со старта JVM таков:

long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime();

Но в бекграунде он не обновляется, что и является вопросом. Просто заносится переменная и висит так до конца действия программы. Можно как-то сохранять значения по вызову?

Как его обновлять в приложении своём?

UPD: Нашел решение

long jvmUpTime() { return ManagementFactory.getRuntimeMXBean().getUptime(); }
Answer 1

Вы получили значение в переменную и записали в адресное пространство текущий uptime, оно не должно обновляться.

Для того, чтобы получать uptime на текущий момент, необходимо сохранить RuntimeMXBean в отдельную переменную и каждый раз, когда необходимо, вызывать метод getUptime, тогда время будет соответствовать времени вызова.

Привожу пример подобной реализации:

RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
System.out.println("Up time: " + rb.getUptime() + " ms"); //Up time: 59 ms
Thread.sleep(1000 * 10);
System.out.println("Up time: " + rb.getUptime() + " ms"); //Up time: 10063 ms
READ ALSO
Краш android приложения с savedInstanceState

Краш android приложения с savedInstanceState

Лабораторная работа в универеДелаю всё по примеру, но при использовании БД для сохранения данных класса SQLiteOpenHelper программа крашится в эмуляторе...

375
LibGDX actor clickListener

LibGDX actor clickListener

Есть два StageВ одном из них:

343
Сохранение текста кнопки в JSON

Сохранение текста кнопки в JSON

Есть несколько однотипных кнопок Button в приложении, изначально они прописывались обычным способом:

304
Создание экземпляра класса Graphics в java

Создание экземпляра класса Graphics в java

Изучаю рисование в javaВезде в примерах показывают рисование на основной панели окна

352