|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|||||||||||
Поймать статус соединения с сервером и перейти в другую активити24.06.2019, 21:50. Показов 1112. Ответов 6
Привет всем! подскажите пожалуйста, подключаюсь на входной форме к серверу mySQL, ввожу логин и пароль. Это в форме MainActivity.
Для подключения к серверу написал отдельный простенький класс с jdbc расширенный с AsynkTask, чтобы процесс подключения шел на заднем фоне. Все отлично отрабатывает, соединение при правильном логине и пароле устанавливается и тестовый запрос проходит отлично. Вот класс: Кликните здесь для просмотра всего текста
В MainActivity тоже все просто и прозрачно: Кликните здесь для просмотра всего текста
Главный вопрос топика, как проверить соединение после введения логина и пароля. 1) если пароль /логин введен верно, то переход на другую активность 2) если неверно, то обработать его в виде Toast на MainActivity Прошу отвечать в рамках приведенного кода, очень поможете, код очень простенький, но засел с проверкой на день уже.
0
|
|||||||||||
| 24.06.2019, 21:50 | |
|
Ответы с готовыми решениями:
6
Как перейти в другую активити при нажатии на RecycleView во фрагменте Переход из фрагмента одной активити в другую активити Ошибка соединения с сервером |
|
93 / 66 / 27
Регистрация: 23.06.2019
Сообщений: 477
|
|
| 25.06.2019, 00:56 | |
|
SqlConn.activeCon в другом потоке. Не в main.
В Activity из AsyncTask doInBackground ничего не получить иначе как через колбэки. И вообще, во всех туториалах и учебниках написано, что AsyncTask так не надо использовать. Потому, что изменение конфигурации(переворот экрана и подобное) убивает активити и создает новое, на которые у AsyncTask нет ссылок. И вся работа уходит в пустую.
0
|
|
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
| 25.06.2019, 01:06 [ТС] | |
|
SqlConn.activeCon в другом потоке. Не в main.
в примере он и так выполняется в отдельном потоке. В классе SqlConnect, расширенным AsyncTask, в методе doInbackground. В Activity из AsyncTask ничего не получить иначе как через колбэки. Так суть вопроса в том и заключается как вернуть статус соединения обратно в Main из AsyncTask, чтобы его обработать и если подключение успешно ,то перейти на другую активность, а если не успешно то выбросить Toast. И поворот экрана у меня тоже выключен.
0
|
|
|
93 / 66 / 27
Регистрация: 23.06.2019
Сообщений: 477
|
||||
| 25.06.2019, 01:24 | ||||
|
Потому, что после окончания doInBackground все Ваши SqlConn.activeCon уберутся сборщиком мусора. Запускаться AsyncTask должен не из Активити, а из такого класса, которому изменения конфигурации приложения пофигу. Он запущен всегда. Типа LiveModel. И даже, если поодключаете, то это за собой потянет другие проблемы. Потому что так работает андрод. Активити убивается и создается новое. Как запретить Солнцу заходить за горизонт и выходить из-за него. Остановить-то можно. Но это будет катастрофа для планеты.
1
|
||||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
| 25.06.2019, 01:35 [ТС] | |
|
-----
И вообще, во всех туториалах и учебниках написано, что AsyncTask так не надо использовать. Потому, что изменение конфигурации(переворот экрана и подобное) убивает активити и создает новое, на которые у AsyncTask нет ссылок. И вся работа уходит в пустую. ----- Даже детально поясню что это фигня, не поленюсь: я создал отдельный класс, которому пофигу на состояние поворота экрана, он не связан с UI, так как его с ним почти ничего не связывает. Его только связывает прием двух переменных - логина и пароля оттуда. (Если даже был бы случайный поворот экрана и поля очистились, и я бы случайно нажал на Войти, то эта ситуация уже предусмотрена в коде Main. Если поля пустые, то процедура запроса к MySql вообще не выполняется. Это все написано в моем первоначальном примере кода Main. Всех трех с половиной строчек кода )В общем ваш ответ не несет никакой практической ценности. Поясню почему, прошу не обижаться. Потому что если пароль и логин введен верно то соединение существует. И я могу к нему обращатся, и выполнять запросы)
0
|
|
|
93 / 66 / 27
Регистрация: 23.06.2019
Сообщений: 477
|
||
| 25.06.2019, 04:39 | ||
|
Взаимодействие с Активити из АсинкТаск производится только через колбэки. Вот в них и обрабатывайте результаты подключения к базе. Иначе бы зачем были бы нужны колбэки, если можно обращаться из МэйнАктивити к, например, AсинкТаскКлас.Коннект? Обрабатывайте ResultSet activeRs не в произвольном месте в MainAcrivity, а в onCancelled(), в onPostExecute() и т.д... Но опять же. Вы ж хотите соединение передавать через из АсинкТаск в Активити и дальше в другое Активити. Вот этого сделать нельзя. Делайте все с базой в doInBackground. Открыли, запрос, получили результат и закрыли. Добавлено через 1 минуту И да. Это все не имеет практического смысла. Но не мой ответ, а Ваш вопрос. Добавлено через 2 минуты С mysql из Android'a напрямую никто не работает. Только через web прокладку. Короткими запросами. Добавлено через 11 минут В том месте где Вы пишете // КАК ПРОВЕРИТЬ УСПЕШНОСТЬ ПОДКЛЮЧЕНИЯ И ЕСЛИ ОНО УСПЕШНО ПЕРЕЙТИ В СЛЕДУЮЩУЮ АКТИВНОСТЬ. ПРОБЛЕМА С ПРОВЕРКОЙ // ПОДКЛЮЧЕНИЯ. КАК ОТЛОВИТЬ НЕПРАВИЛЬНО ВВЕДЕННЫЙ ЛОГИН ИЛИ ПАРОЛЬ???? нельзя "ПРОВЕРИТЬ УСПЕШНОСТЬ ПОДКЛЮЧЕНИЯ " Потому, что после SqlConn.execute() этот екзекют будет еще 10 минут исполняться. А Вы уже точку проверки проскочили. То есть она заведомо будет false в любом случае. Проверяйте в doInBackground и передавайте в onPostExecute() который и будет уже открывать новую активити или запрашивать пароль. Но это все равно неправильно. Не надо AcинкТаск из Активити вызывать. Вообще Активити только для отображения изображения экрана. Никакой другой логики в нем быть не должно. И да, нет практического смысла в ответе на вопрос, который вообще смысла не имеет. Добавлено через 52 секунды Просто азбучные истины. Может кому-то будет интересно. Топикстартеру это не интересно.
1
|
||
|
547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
| 25.06.2019, 06:46 [ТС] | |
|
Да нет, спасибо, внимательно прочитал., За проведенную работу с азбукой отдельное спасибо!)
Только осваиваю android и java. Понимаю что модель android+jdbc+mysql не рекомендованная практика. И то что точечные запросы к веб серверу наиболее предпочтительны. Использовал до этого очень долго связку десктоп Odbc на другом языке. Соединение почти никогда не крашилось, единичные случаи. Поэтому начал реализацию проектика с того, что знаю и умею. С позиции безопасности на все сто процентов согласен, дырка на 3306 напрямую смотрится странно. Это конечно проблема, но за 6 лет моя бд никому не нужна была с позиции взлома) Да в случае взлома там бы ждало пару нервных сюрпризов. По скорости точечных запросов открыл/закрыл тут наверное паритет с вэб. Я параллельно мониторил на стороне mysql, даже при Е с 2 палками, зависало примерно на 1,5 сек всего. Зато взамен можно получить уже RowSet , причем стоковый, который сам кэшируется , при отваливании из сети хранит значения, и при следующем Коннект/реконнект синхронизируется с бд сам. Видимо в большей степени методика работы по http цениться из за того что модель доступа к данным в виде Json упрощает разработку параллельно коллегам ,пишущих веб интерфейс , легче поддерживать соединение при помощи сессий , и кэшировать результат для быстрой выдаче можно собственно на вэбсервере. итд итп. Php знаю немного, можете по CRUD какие нибудь толковые ссылки кинуть, как андроид использовать с веб запросами. ? С лаконичным кодом на стороне сервера. В любом случае спасибо!
0
|
|
| 25.06.2019, 06:46 | |
|
Помогаю со студенческими работами здесь
7
Ошибка соединения с сервером Проверка соединения с сервером Ошибка соединения с сервером Нет соединения с сервером Ошибки соединения c сервером Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|