Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
#1

Переменные класса Application - Программирование Android

04.02.2016, 23:21. Просмотров 821. Ответов 12
Метки нет (Все метки)

Переменные(поля-данные) обьявленные внутри класса Application являются глобальными во всем приложении и значения присвоенные этим переменным доступны во всех активити и компонентах приложения(если только они не private) правильно я понимаю?

Добавлено через 1 минуту
То есть можно например хранить не в SharedPreferences а в классе Application некоторые нужные значения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2016, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переменные класса Application (Программирование Android):

Класс: Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. - Программирование Android
Есть 3 класса: MainActivity, WorkDB и WorkFiles. Хочу из класса WorkFiles получить доступ к функционалу класса WorkDB. Файл...

Как изменить Textview из другого класса (класса адаптера RecyclerView) - Программирование Android
У меня есть список RecyclerView тоесть этот файл Basket и файл что реализует cardwiew BasketAdapter. как мне изменить TextView allPrice из...

Android Application - Программирование Android
Здравствуйте!Скачал сегодня ADT. Есть два текстовых поля и кнопка. Нужно написать программу, которая считывает значения из этих полей,...

The application is incorrectly configured - Программирование Android
Пытаюсь разобраться с гугл плей сервисом сделал все как сказано здесь https://developers.google.com/games/services/android/quickstart, при...

Порядок закрытия Application - Программирование Android
Переопределил Application. Если я правильно понял (засекал) сначала выполняется onCreate() в Application, а уж потом активити по умолчанию....

Android web application - Программирование Android
Помогите все прояснить, на андройде программирую год, есть опыт создания развлекательных приложений и игр. Решил познать сторону веб...

12
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
05.02.2016, 09:59 #2
Application удобно если у вас несколько активити,
но все равно нужно передавать данные в активити (пара строк)
SharedPreferences запишет ваши данные, Application по определению само ето не делает
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
05.02.2016, 12:09  [ТС] #3
А как передать данные из Application в Activity? Можете подсказать?? То есть я могу в активити изменить некое целое число и сохранить его в поле Application верно?
0
ILNAR_93
Android
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
05.02.2016, 15:00 #4
Java
1
2
MyAppClass appClass = (MyAppClass) context.getApplicationContext();
appClass.i = 2;
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
18.02.2016, 10:52 #5
ILNAR_93, в каком случае нужны интенды для перехода между активностями?
не проще ли везде создавать Application
0
ILNAR_93
Android
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
18.02.2016, 16:12 #6
Цитата Сообщение от Valakin Посмотреть сообщение
не проще ли везде создавать Application
Возможно проще, я с начало изучения программирования под android "подсел" на этот метод передачи данных между активностями..
1
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
18.02.2016, 18:40 #7
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
я с начало изучения программирования под android "подсел" на этот метод передачи данных между активностями
Недавно создавал такую тему: Кто как передаёт коллекции между активностями, классами?.
На мой взгляд, передача данных через Application может использоваться как решение для упрощения разработки. Но имеет свои недостатки. "Каноническим" способом является передача через Intent. Кроме того, так сохраняется актуальность данных. Иначе они могут быть поменяны в другом месте.
1
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
21.02.2016, 23:01  [ТС] #8
Java
1
2
MyAppClass appClass = (MyAppClass) context.getApplicationContext();
appClass.i = 2;
то есть если я выполнил этот код в onCreate одного Activity, но хочу достать значение сохраненное в appClass объекте MyAppClass уже в другом активити то там же объект appClass уже не существует(его область видимости и жизни ограничилась методом onCreate первого активити). И как мне тогда достать то значение которое я сохранил в MyAppClass?? Или объект appClass будет один на все риложение и будет существовать пока живет приложение? То есть из любого места приложения к нему можно обратиться он виден и существует везде в этом идея?
0
ILNAR_93
Android
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
22.02.2016, 11:07 #9
В классе Application есть переменная public int i;

Активность 1
Java
1
2
MyAppClass appClass = (MyAppClass) context.getApplicationContext();
appClass.i = 2;
активность 2
Java
1
2
MyAppClass appClass = (MyAppClass) context.getApplicationContext();
int b = appClass.i;
Добавлено через 13 минут
Цитата Сообщение от yura91 Посмотреть сообщение
То есть из любого места приложения к нему можно обратиться он виден и существует везде в этом идея?
Да.
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
22.02.2016, 11:10  [ТС] #10
А метод getInstance() нужно вызывать для создания обьектов MyAppClass? Ведь класс Application - это же Singleton
0
ILNAR_93
Android
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
22.02.2016, 11:16 #11
yura91,
Java
1
getInstance()
- вы можете добавить этот метод в ваш Application класс и вызывать его
MyAppClass appClass = MyAppClass.getInstance();
int b = appClass.i;


Ваш класс MyAppClass наследующий Application
Java
1
2
3
4
5
6
7
8
9
10
11
private static MyAppClass singleton;
 
@Override
    public void onCreate() {
        super.onCreate();
        this.singleton = this;
    }
 
public MyAppClass getInstance(){
return singleton;
}
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,310
22.02.2016, 11:24  [ТС] #12
А у базового класса Application нету своего метода getInstance()? Просто можно использовать не свой getInstance() а этот метод базово класса Application?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
22.02.2016, 12:32 #13
Цитата Сообщение от yura91 Посмотреть сообщение
А у базового класса Application нету своего метода getInstance()
нет
0
22.02.2016, 12:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2016, 12:32
Привет! Вот еще темы с ответами:

Что такое Application - Программирование Android
Обьясните "на пальцах" пожалуста!! :( Я так понял - это класс, который создается до всех активити и убивается после... Создал своего...

Время жизни переменной в Application - Программирование Android
В Классе Application до какого времени живет переменная? Наблюдаю следующее: создаю класс наследник Application, там есть переменная...

The application may be doing too much work on its main thread - Программирование Android
Ну елки палки, это что еще такое ? :) В приложении запускаю камеру и ловлю результат PhotoObject current_photoObj ; // мой класс для...

Интересный факт о Application и Service :remote - Программирование Android
Значит берём создаём тестовый примерчик: Активити Сервис Биндимся из активити к сервису и через месенджер шлём сообщения сервису...


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

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

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