Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 105
09.08.2015, 09:51     Вызов разных фрагментов или активити на клиенте по команде сервера #1
Подскажите пожалуйста направление/примеры/описалово/библиотеки, хоть что нибудь что поможет решить задачу.

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

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


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

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

Как организовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2015, 09:51     Вызов разных фрагментов или активити на клиенте по команде сервера
Посмотрите здесь:

Android Вызов активити
Выкачать XML с сервера или сайта для последующего парсинга Android
Доступ к базе данных из разных активити Android
Как проверить пустое SharedPreferences или нет при загрузке активити? Android
Android Exception при использовании анимации фрагментов
Android Анимация фрагментов и активити
Что лучше использовать фрагмент или активити Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
521 / 491 / 110
Регистрация: 12.03.2014
Сообщений: 1,641
Завершенные тесты: 1
09.08.2015, 13:35     Вызов разных фрагментов или активити на клиенте по команде сервера #2
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 105
09.08.2015, 14:10  [ТС]     Вызов разных фрагментов или активити на клиенте по команде сервера #3
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
Сервер запитан от БД в которой данные меняются в зависимости не только от действий на клиентском андроиде, но и в зависимости от трех НЕ взаимосвязанных между собой прог на другой стороне БД.
При этом должна быть максимально синхронизированы данные. Те проги работают по принципу "кто раньше" андроиды тоже должны работать по такому же принципу.
А потому
Если (в назовем так - "базовый клиент" = БК) БК внес изменения в БД, то инфа сразу, мгновенно должна ходить на Андроид того, кого это касается.
Потому периодический опрос сервера исключается.
Если не дойдет кому месага вообще, то это меньшее зло чем когда дойдет с задержкой.

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

То есть прогой рулит не андроид, а сервер потому что все проги юзают общую БД с быстро меняющимися данные.
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 643
09.08.2015, 14:26     Вызов разных фрагментов или активити на клиенте по команде сервера #4
Копать нужно в эту сторону. Тут уже интересовались этим вопросом - Концепция и реализация PUSH-уведомлений
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 105
09.08.2015, 14:43  [ТС]     Вызов разных фрагментов или активити на клиенте по команде сервера #5
Спасибо, есть объемчик для рытья.

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

Сервисы слушают, правильно реагирую в лог если манипулирую ручками, а как все это натворить программно не знаю. Что это должно быть интенты. бандели, бродкасты? Что?
Я всего две недели как понял, что на Jave не очень страшно что либо писать, а потому не знаю что и как использовать для внутриандроидного взаимодействия.
ТО что присылаю как нибудь распарсю, а вот как из сервиса передать и по результату парсинга вызвать Активити или фрагмент и ему на обработку скормить то что останется токенайзере не могу сообразить.
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 643
09.08.2015, 14:55     Вызов разных фрагментов или активити на клиенте по команде сервера #6
Вот тут найдёшь много полезной информации и про вызов активити, и про работу с фрагментами, и про передачу информации между активити/сервисами/фрагментами/т.д.
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 105
09.08.2015, 15:02  [ТС]     Вызов разных фрагментов или активити на клиенте по команде сервера #7
Цитата Сообщение от Mikalai Посмотреть сообщение
Вот тут найдёшь много полезной информации и про вызов активити, и про работу с фрагментами, и про передачу информации между активити/сервисами/фрагментами/т.д.
Был, рылся, но там везде "при нажатии кнопочки дверь и откроется ". А мне нужно программно открыть нужное активити или фрагмент по результату парсинга.

По кнопочкам я уже сделал - работает.
Вот только под каждую кнопочку приходится листнер и парсер подставлять, а выбирать их тоже кнопочкой. А программно то как?
Mikalai
248 / 224 / 91
Регистрация: 11.01.2015
Сообщений: 643
09.08.2015, 15:17     Вызов разных фрагментов или активити на клиенте по команде сервера #8
Там достаточно информации. Возможно её нужно немного скомбинировать.
Вызвать activity из сервиса можно так:
Java
1
2
3
        Intent intent = new Intent(this, НазваниеВызываемогоАктивити.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2015, 16:08     Вызов разных фрагментов или активити на клиенте по команде сервера
Еще ссылки по теме:

Android Взаимодействие вложенных фрагментов
Как вернуть результат в активити включил юзер gps или нет? Android
Android Если поменять ориентацию экрана или SurfaceView перекроет другой активити, то приложение завершается аварийно
Android Callback фрагментов
Android Вызов активити

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

Или воспользуйтесь поиском по форуму:
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 105
09.08.2015, 16:08  [ТС]     Вызов разных фрагментов или активити на клиенте по команде сервера #9
У меня в заготовке так
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

По отдельности все понятно и вопросов нет.
Yandex
Объявления
09.08.2015, 16:08     Вызов разных фрагментов или активити на клиенте по команде сервера
Ответ Создать тему
Опции темы

Текущее время: 04:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru