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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
#1

Связь между Activity - Android

29.08.2013, 10:09. Просмотров 1186. Ответов 5
Метки нет (Все метки)

День добрый

Не могу понять как организовать связь между различными Activity, точнее не связь, я передачу данных в обоих направлениях.
Пример брал с этого урока. Суть вот в чем: есть 3 активити: 1 главное, остальные 2 расположены в вкладках таба. Я хочу сделать вот что: в главном активити происходил опрос GPS в фоне, а данные передовать во 2 активити, но как это сделать я не понимаю. Думал мб подойдут глобальные переменные, но не тут было( 2 активи их просто не видит. Нашел способ передавать данные между активити (getIntExtra, putExtra), но эти данные передаются во время "старта" активити, а мне надо в фоне. Подскажите в какую сторону копать пожалуйста.

И еще один вопрос: как сделать чтобы переменные либо класс был виден во всем проекте, а не только в классе, которые его породил?

Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 10:09     Связь между Activity
Посмотрите здесь:

Android Передача данных между activity
Переключение между activity (простой пример) Android
Переключение между Activity Android
Android Переход между fragment и activity
Передача значений между Activity Android
Переход перелистыванием между Activity Android
Android Передача данных между тремя Activity
Android Обмен данными между Activity
Переключение между Activity Android
Передача данных между Activity Android
Android Переключение между Activity путём нажатия кнопки
Android Обмен данными между Activity (одна глобальная переменная)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
29.08.2013, 17:03     Связь между Activity #2
так
Java
1
2
3
4
Bundle bundle = new Bundle();
Intent intent = new Intent(A.this, B.class);
bundle.putString("vidoedetails", filedetails);
intent.putExtras(bundle);
или вот так

Constants.java
Java
1
public static String WELL_KNOWN_STRING ="ololo";
Activity1.java
Java
1
bundle.putString(Constants.WELL_KNOWN_STRING, filedetails);
Activity2.java
Java
1
filedetails = extras.getString(Constants.WELL_KNOWN_STRING);
для общей видимости используйье модификатор public. Если нужно из другого пакета вызвать, то используйте
import folderwithyourclass.yourclass;
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
29.08.2013, 17:19  [ТС]     Связь между Activity #3
Я сделал немного по другому и хочу спросить: это допустимо
Я создал класс и все переменные описал как public static
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.08.2013, 22:54     Связь между Activity #4
используйте фрагменты.
sirik2012
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 45
30.08.2013, 00:13  [ТС]     Связь между Activity #5
Хорошо, а что если мне надо получить доступ к данным не только из всех активити, а из 2-3 потоков, которые запущены из главной и 2-3 из второй?
Думаю, класс то что надо, или я могу ошибаться?
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
30.08.2013, 01:02     Связь между Activity #6
если нельзя обойтись без такого класса, значит, скорее всего, кривая архитектура.

Добавлено через 5 минут
Цитата Сообщение от sirik2012 Посмотреть сообщение
Нашел способ передавать данные между активити (getIntExtra, putExtra), но эти данные передаются во время "старта"
не только:
Для каждой Activity в манифесте можно указать аттрибут launchMode. Он имеет несколько значений:

* singleTop — Activity может распологаться в стеке несколько раз. Новая запись в стеке создается только в том случаи, если данная Activity не расположенна в вершине стека. Если она на данный момент является вершиной, то у нее сработает onNewIntent() метод, но она не будет пересоздана
* singleTask — создает новый таск и устанавливает Activity корнeвой для него, но только в случаи, если экзеапляра данной Activity нет ни в одном другом таске. Если Activity уже расположена в каком либо таске, то откроется именно тот экземпляр и вызовется метод onNewIntent(). Она в свое время становится главной, и все верхние экземпляры удаляются, если они есть. Только один экземпляр такой Activity может существовать
еще есть такая штука как BroadcastReceiver
Yandex
Объявления
30.08.2013, 01:02     Связь между Activity
Ответ Создать тему
Опции темы

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