С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508

Вызов разных фрагментов или активити на клиенте по команде сервера

09.08.2015, 09:51. Показов 902. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста направление/примеры/описалово/библиотеки, хоть что нибудь что поможет решить задачу.

Задачи две:
1. Клиент отправляет месагу серверу (типа: хочу получить инфу о предмете), сервер отвечает "открой фрагмент/активити по кличке "кличка" и распарси для него месагу".

2. Сервер не ждет ничего от клиента и самостоятельно инициализирует месагу, клиент после выполнения отсылает ОК.


Переговоры между клиентом и сервером готовы и работают по принципу сервер<-->сервер без проблем.

Остается заставить клиента вести себя адекватно, то есть вызывать фрагмент или активити которое ему указал сервер.

Как организовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2015, 09:51
Ответы с готовыми решениями:

Анимация фрагментов и активити
Задаю анимацию для фрагментов и активити, но она работает на моём устройстве только в том случае, если в настройках телефона включена...

Вызов новой активити не из класса активити
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа работает с сервером и получает...

Нужно ли в клиенте указывать ip-адрес сервера или достаточно указать номер порта
Доброго времени суток! :) Пытаюсь разобрать серверную программку, которая ждёт от клиента текстовое сообщение. Нужно ли в клиенте...

8
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
09.08.2015, 13:35
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
0
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
09.08.2015, 14:10  [ТС]
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
Сервер запитан от БД в которой данные меняются в зависимости не только от действий на клиентском андроиде, но и в зависимости от трех НЕ взаимосвязанных между собой прог на другой стороне БД.
При этом должна быть максимально синхронизированы данные. Те проги работают по принципу "кто раньше" андроиды тоже должны работать по такому же принципу.
А потому
Если (в назовем так - "базовый клиент" = БК) БК внес изменения в БД, то инфа сразу, мгновенно должна ходить на Андроид того, кого это касается.
Потому периодический опрос сервера исключается.
Если не дойдет кому месага вообще, то это меньшее зло чем когда дойдет с задержкой.

Аналогично, если Андроидное приложение отослало что либо, что может коснутся других клиентАндроиДевайсов, значит ОК инициатору должен поступать только в случаях когда другие андроиды оповещены и прислали свои ОК.

То есть прогой рулит не андроид, а сервер потому что все проги юзают общую БД с быстро меняющимися данные.
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
09.08.2015, 14:26
Копать нужно в эту сторону. Тут уже интересовались этим вопросом - Концепция и реализация PUSH-уведомлений
1
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
09.08.2015, 14:43  [ТС]
Спасибо, есть объемчик для рытья.

Добавлено через 14 минут
Посмотрел ссылки, ничего не дали. У меня обмен месагами организован.

Сервисы слушают, правильно реагирую в лог если манипулирую ручками, а как все это натворить программно не знаю. Что это должно быть интенты. бандели, бродкасты? Что?
Я всего две недели как понял, что на Jave не очень страшно что либо писать, а потому не знаю что и как использовать для внутриандроидного взаимодействия.
ТО что присылаю как нибудь распарсю, а вот как из сервиса передать и по результату парсинга вызвать Активити или фрагмент и ему на обработку скормить то что останется токенайзере не могу сообразить.
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
09.08.2015, 14:55
Вот тут найдёшь много полезной информации и про вызов активити, и про работу с фрагментами, и про передачу информации между активити/сервисами/фрагментами/т.д.
1
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
09.08.2015, 15:02  [ТС]
Цитата Сообщение от Mikalai Посмотреть сообщение
Вот тут найдёшь много полезной информации и про вызов активити, и про работу с фрагментами, и про передачу информации между активити/сервисами/фрагментами/т.д.
Был, рылся, но там везде "при нажатии кнопочки дверь и откроется ". А мне нужно программно открыть нужное активити или фрагмент по результату парсинга.

По кнопочкам я уже сделал - работает.
Вот только под каждую кнопочку приходится листнер и парсер подставлять, а выбирать их тоже кнопочкой. А программно то как?
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
09.08.2015, 15:17
Там достаточно информации. Возможно её нужно немного скомбинировать.
Вызвать activity из сервиса можно так:
Java
1
2
3
        Intent intent = new Intent(this, НазваниеВызываемогоАктивити.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
0
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
09.08.2015, 16:08  [ТС]
У меня в заготовке так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void showForm(int i, Context context, String type){
        switch(i){
        case 1:
            intent = new Intent(context, loginActivity.class);
            break;
        case 2:
            intent = new Intent(context, mainActivity.class);
            break;
        case 3:
            intent = new Intent(context, workActivity.class);
            break;
        case 4:
            intent = new Intent(context, settingActivity.class);
            break;
        case 5:
            intent = new Intent(context, listViewActivity.class);
            break;
        case 6:
            intent = new Intent(context, addOrChangeListViewActivity.class);
            break;
        }
        intent.putExtra("typeListView", type);
        intent.putExtra(formController.class.getCanonicalName(), this);
        context.startActivity(intent);
    }
Но что с этим делать не знаю.

Точнее не знаю как задействовать.

Добавлено через 15 минут
Вопрос то не в том как и что делать по отдельности, а как создать цепочку

messageListner->parser(message)->НазваниеВызываемогоАктивити из parcer->tokenizer(message минус parser)-setTextView

По отдельности все понятно и вопросов нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2015, 16:08
Помогаю со студенческими работами здесь

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

Вызов активити
При удачной авторизации вылетает сообщение &quot;Login Successfull&quot;, а как сделать так что бы при этом еще совершался переход на другую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru