• 0
Сергей Сергеев

Как прервать SQLConnection ? Android

Вопрос

Добрый день!

Использую для коннекта с сервером Datasnap TsqlConnection.

Т.к. мобильная связь не всегда устойчива, иногда возникают паузы.. 

при этом кнопка "Войти"  остается в нажатом состоянии..  ( по ней делается sqlconn.open ) 

интерфейс блокируется и нажать какой нибудь 'cancel' не получается.

Думаю это потому, что Android выполняет соединение в основном потоке.. и пока не вернется из недр connect ( по тайм ауту к примеру)

не реагирует на тапы и клики. Выход видится как открытие в соединения в потоке.. но не очень понятно , как им потом управлять, ведь мне нужно держать соединение постоянно открытым, для дальнейшего обмена данными в сессии..

Кто делал нечто подобное, жду мудрых советов .. заранее спасибо..

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8 ответов на этот вопрос

  • 0
3 часа назад, Сергей Сергеев сказал:

Добрый день!

Использую для коннекта с сервером Datasnap TsqlConnection.

Т.к. мобильная связь не всегда устойчива, иногда возникают паузы.. 

при этом кнопка "Войти"  остается в нажатом состоянии..  ( по ней делается sqlconn.open ) 

интерфейс блокируется и нажать какой нибудь 'cancel' не получается.

Думаю это потому, что Android выполняет соединение в основном потоке.. и пока не вернется из недр connect ( по тайм ауту к примеру)

не реагирует на тапы и клики. Выход видится как открытие в соединения в потоке.. но не очень понятно , как им потом управлять, ведь мне нужно держать соединение постоянно открытым, для дальнейшего обмена данными в сессии..

Кто делал нечто подобное, жду мудрых советов .. заранее спасибо..

 

Не скромный вопрос, а зачем держать соединение постоянно открытым???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
23 часа назад, Vitaldj сказал:

Не скромный вопрос, а зачем держать соединение постоянно открытым???

так работает datasnap, сессия

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

ну никто не заставлял Connection запускать в основном потоке

создавайте поток, отдавайте ему ссылку на Datamodule и пусть фигачит себе ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
6 часов назад, krapotkin сказал:

ну никто не заставлял Connection запускать в основном потоке

создавайте поток, отдавайте ему ссылку на Datamodule и пусть фигачит себе ))

И садит батарею)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

а в основном жалеет ее что-ли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
14 минут назад, krapotkin сказал:

а в основном жалеет ее что-ли?

Да нет, я про то, что написал вверху:

 

В 25.09.2016 в 23:51, Vitaldj сказал:

а зачем держать соединение постоянно открытым???

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

соединение, зараза, долгая операция относительно вызова функции. поэтому все, в т.ч. браузеры его держат, сколько возможно.

у меня в программе Datasnap коннект тоже держится. и поднимается заново, если  он был потерян.

но других средств против заморозки интерфейса, кроме выноса в другой поток, не существует

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
В Tuesday, September 27, 2016 в 09:29, krapotkin сказал:

соедин пклиента ение, зараза, долгая операция относительно вызова функци и. поэтому все, в т.ч. браузеры его держат, сколько возможно.

у меня в программе Datasnap коннект тоже держится. и поднимается заново, если  он был потерян.

но других средств против заморозки интерфейса, кроме выноса в другой поток, не существует

коннект надо держать, чтобы жила сессия на сервере. не псевдо сессия  с тикетами и прочими бекдорами потенциальными,  а та, сощданная при первом коннекте, хранящая в себе и только в себе на сервере ид  клиента вошедшего, и только с этим ид выполняющая действия, не принимая его из вне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу