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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 140
#1

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

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

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

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

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


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

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

Как организовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2015, 09:51     Вызов разных фрагментов или активити на клиенте по команде сервера
Посмотрите здесь:
Android Анимация фрагментов и активити
Android Вызов активити
Android Вызов активити
Доступ к базе данных из разных активити Android
Что лучше использовать фрагмент или активити Android
Как проверить пустое SharedPreferences или нет при загрузке активити? Android
Как вернуть результат в активити включил юзер gps или нет? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
09.08.2015, 13:35     Вызов разных фрагментов или активити на клиенте по команде сервера #2
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 140
09.08.2015, 14:10  [ТС]     Вызов разных фрагментов или активити на клиенте по команде сервера #3
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
Сервер запитан от БД в которой данные меняются в зависимости не только от действий на клиентском андроиде, но и в зависимости от трех НЕ взаимосвязанных между собой прог на другой стороне БД.
При этом должна быть максимально синхронизированы данные. Те проги работают по принципу "кто раньше" андроиды тоже должны работать по такому же принципу.
А потому
Если (в назовем так - "базовый клиент" = БК) БК внес изменения в БД, то инфа сразу, мгновенно должна ходить на Андроид того, кого это касается.
Потому периодический опрос сервера исключается.
Если не дойдет кому месага вообще, то это меньшее зло чем когда дойдет с задержкой.

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

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

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

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

По кнопочкам я уже сделал - работает.
Вот только под каждую кнопочку приходится листнер и парсер подставлять, а выбирать их тоже кнопочкой. А программно то как?
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
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 Если поменять ориентацию экрана или SurfaceView перекроет другой активити, то приложение завершается аварийно
Android Callback фрагментов
Android Жизненный цикл фрагментов
Очистка стека фрагментов Android
Android ViewPager обновление фрагментов

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

Или воспользуйтесь поиском по форуму:
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 140
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     Вызов разных фрагментов или активити на клиенте по команде сервера
Ответ Создать тему
Опции темы

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