Задать вопрос
@vopross

В чем ошибка и правильно ли я вообще делаю?

Нужно определить находится пользователь онлайн или нет?
//Время последнего действия пользователя в Unix, получаю с сервера
long activityDate;
//Получаем временную метку
long unixTime = System.currentTimeMillis() / 1000L;

//Время когда пользователь перестанет быть онлайн (60 сек * 16 мин = 960сек, т.е через 16 минут после последнего действия пользователь уходит в offline)
unixTimeOnline = activityDate  + 960L;

if(unixTimeOnline > unixTime){
    //Online 
} else {
  //offline
}


В чем ошибка, так как пользователь остается Online намного дольше чем на 16 минут с последнего действия
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
thelongrunsmoke
@thelongrunsmoke
Программист
1) Вы сравниваете время сервера и время у пользователя? Не надо так. Вопросы такого рода надо решать на сервере и только в UTC.
2) Магические цифры - зло. Если вам надо 16 минут в секундах, умножьте 60 на 16.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы