С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
zoleg
37 / 36 / 7
Регистрация: 10.01.2012
Сообщений: 331
1

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

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

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

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

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


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

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

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

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

Вызов новой активити не из класса активити
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4)...

Вызов активити
При удачной авторизации вылетает сообщение &quot;Login Successfull&quot;, а как сделать...

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

Доступ к базе данных из разных активити
В общем-то в теме и вопрос, как получить доступ к базе данных и разных...

8
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
09.08.2015, 13:35 2
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
0
zoleg
37 / 36 / 7
Регистрация: 10.01.2012
Сообщений: 331
09.08.2015, 14:10  [ТС] 3
Цитата Сообщение от Spelcrawler Посмотреть сообщение
А почему нельзя просто получить сообщение get запросом и обработать его в приложении?
Сервер запитан от БД в которой данные меняются в зависимости не только от действий на клиентском андроиде, но и в зависимости от трех НЕ взаимосвязанных между собой прог на другой стороне БД.
При этом должна быть максимально синхронизированы данные. Те проги работают по принципу "кто раньше" андроиды тоже должны работать по такому же принципу.
А потому
Если (в назовем так - "базовый клиент" = БК) БК внес изменения в БД, то инфа сразу, мгновенно должна ходить на Андроид того, кого это касается.
Потому периодический опрос сервера исключается.
Если не дойдет кому месага вообще, то это меньшее зло чем когда дойдет с задержкой.

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

То есть прогой рулит не андроид, а сервер потому что все проги юзают общую БД с быстро меняющимися данные.
0
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 671
09.08.2015, 14:26 4
Копать нужно в эту сторону. Тут уже интересовались этим вопросом - Концепция и реализация PUSH-уведомлений
1
zoleg
37 / 36 / 7
Регистрация: 10.01.2012
Сообщений: 331
09.08.2015, 14:43  [ТС] 5
Спасибо, есть объемчик для рытья.

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

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

По кнопочкам я уже сделал - работает.
Вот только под каждую кнопочку приходится листнер и парсер подставлять, а выбирать их тоже кнопочкой. А программно то как?
0
Mikalai
264 / 240 / 95
Регистрация: 11.01.2015
Сообщений: 671
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);
0
zoleg
37 / 36 / 7
Регистрация: 10.01.2012
Сообщений: 331
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

По отдельности все понятно и вопросов нет.
0
09.08.2015, 16:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2015, 16:08

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

Вызов функции по команде Call
Суть вопроса: как сделать так, чтобы функции, вызывающиеся через call : , но не...

Вызов прогресс-бара по команде
Всем привет,я новичок в этом деле начинаю с азов ,помогите пожалуйста как...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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