@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 минут с последнего действия
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 1
thelongrunsmoke
@thelongrunsmoke
Программист
1) Вы сравниваете время сервера и время у пользователя? Не надо так. Вопросы такого рода надо решать на сервере и только в UTC.
2) Магические цифры - зло. Если вам надо 16 минут в секундах, умножьте 60 на 16.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы