Проясніть ситуацію з BLYNK_READ

Вітаю знову і знову.

Проясніть ситуацію з викликом функції BLYNK_READ(vPIN).
Раніше я вважав, що ця функція викликається тільки коли додаток активний і є запит на оновлення з віджету.
А оце зараз виявив, що ця функція викликається і тоді коли додаток не активний, або сматртфон вимкнено та є запит на оновлення від віджету.

Це нормальна поведінка?

Бо я вважав, що запит на оновлення даних функцією BLYNK_READ(vPIN) має відбуватись тільки коли додаток на смартфоні відкритий (активний). Наприклад, хочу бачити дані на екрані смартфону очима раз на 2 секунди. Коли я закрив додаток, натиснув кнопку “дім” на смартфоні, додаток став не активним, то нащо мені ті данні кожні 2 секунди???

Якщо це нормальна поведінка, то мені потрібно додатково обробляти ще чи активний додаток чи ні?

День добрий.

Ця функція BLYNK_READ(vPIN) викликається тільки коли додаток активний. Тут фішка в тому, що інколи, після того як Ви згортаєте апку, додаток вважається все ще активним так як система (андроід, іОС) можуть не закривати сокет на протязі декількох хвилин.

В планах на майбутнє зробити BLYNK_READ абсолютно незалежним і змусити його спрацьовувати завжди. Навіть коли додаток не активний. Насправді, для локального сервера це вже зроблено - https://github.com/blynkkk/blynk-server/blob/master/server/core/src/main/resources/server.properties#L110

Це дасть змогу позбавитись таймерів у коді.

2 Likes

Дякую друже. Зрозумів. Спробую почекати та поспостерігаю за поведінкою.

Так таки так! Після закриття програми. Очистив утилітою пам’ять смартфону і викликатись BLYNK_READ(vPIN) перестає.

Віджети рабочого столу також можуть бути причиною такої поведінки.

2 Likes

I like this feature, now that I know of it :stuck_out_tongue_winking_eye: Particularly with NodeJS as I have yet to figure out a local timer solution.