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

Widget и статические данные - Android

Восстановить пароль Регистрация
 
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
02.12.2013, 00:01     Widget и статические данные #1
Всем привет!
Столкнулся со следующим.
Имеется класс виджета и в нем статическое данное - некий мой класс, который я использую в функции onUpdate.
Все работает прекрасно. Но после установки приложения на телефон наблюдается следующая картина:
После каждого звонка создается новое статическое данное!!! То есть f1.toString() содержит адрес нового объекта, а старый с которым я работал бесследно исчезает.
onUpdate вызывается по таймеру каждые 30 минут, приложение не перезапускается
Использую старую версию API на ОС 2.3.7

public class MyWidget extends AppWidgetProvider
{
static FileUtils f1 = new FileUtils(); //

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
super.onUpdate(context, appWidgetManager, appWidgetIds);
String s = f1.toString();
...

Кто знает. ответьте пож-та?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 00:01     Widget и статические данные
Посмотрите здесь:

Android Home Screen Widget Animation
Android Widget + activity
Android Widget не работает OnUpdate
Android Как сбрасывать статические переменные после запуска?
AutoUpdate Widget Android
Android Файл не найден: Widget.obj
Custom Fonts in widget Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
02.12.2013, 15:22     Widget и статические данные #2
Цитата Сообщение от VZRos Посмотреть сообщение
Всем привет!
Столкнулся со следующим.
Имеется класс виджета и в нем статическое данное - некий мой класс, который я использую в функции onUpdate.
Все работает прекрасно. Но после установки приложения на телефон наблюдается следующая картина:
После каждого звонка создается новое статическое данное!!! То есть f1.toString() содержит адрес нового объекта, а старый с которым я работал бесследно исчезает.
onUpdate вызывается по таймеру каждые 30 минут, приложение не перезапускается
Использую старую версию API на ОС 2.3.7

public class MyWidget extends AppWidgetProvider
{
static FileUtils f1 = new FileUtils(); //

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
{
super.onUpdate(context, appWidgetManager, appWidgetIds);
String s = f1.toString();
...

Кто знает. ответьте пож-та?
что то я не смог понять сути проблемы, в чем сопсно ошибка?
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
03.12.2013, 00:29  [ТС]     Widget и статические данные #3
Проблема: Класс FileUtils после каждого звонка создается новый. Вызывается конструктор итд итп. Все данные класса FileUtils, которые я инициализировал по ходу программы, создаются заново.
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
03.12.2013, 00:39     Widget и статические данные #4
Цитата Сообщение от VZRos Посмотреть сообщение
Проблема: Класс FileUtils после каждого звонка создается новый. Вызывается конструктор итд итп. Все данные класса FileUtils, которые я инициализировал по ходу программы, создаются заново.
так может сделать проверку и вызывать его только раз в виджете?
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
03.12.2013, 00:57  [ТС]     Widget и статические данные #5
Цитата Сообщение от dajver Посмотреть сообщение
так может сделать проверку и вызывать его только раз в виджете?
немножко не понял о чем Вы?
я удручен тем, что не могу в экземпляре статического типа хранить данные нужные мне. Каждый раз после звонка они обнуляются...
функция Update у меня вызывается раз в 30 минут и в ней я каждый раз инициирую данные экземпляра класса FileUtils. А после звонка они обнулены
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
03.12.2013, 01:08     Widget и статические данные #6
Цитата Сообщение от VZRos Посмотреть сообщение
немножко не понял о чем Вы?
я удручен тем, что не могу в экземпляре статического типа хранить данные нужные мне. Каждый раз после звонка они обнуляются...
функция Update у меня вызывается раз в 30 минут и в ней я каждый раз инициирую данные экземпляра класса FileUtils. А после звонка они обнулены
сохраняйте данные в preferences и выводите их, а когда обновляете их то обновляйте и в преференсах, тогда будет все нормально

Вот так записывать
Java
1
2
3
4
5
6
7
8
9
10
//в шапке класса
SharedPreferences mSettings;
 
//в onCreate или подобных
mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
 
//в месте где хотите сохранить
Editor editor = mSettings.edit();
editor.putInt("data", 0); // 0 - то что хотите записать
editor.apply();
а вот так считать

Java
1
String data= mSettings.getInt("data", 0);
Добавлено через 5 минут
Писал на коленке, возможно вместо apply нужен commit
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
03.12.2013, 01:36  [ТС]     Widget и статические данные #7
Да я уже думал об этом - придется... Все равно спасибо - Только вот почему такое странное поведение?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 01:49     Widget и статические данные
Еще ссылки по теме:

Получение String из другого класса в Activity widget Android
Unknown member align_normal of android.widget.gridlayout.alignment Android

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

Или воспользуйтесь поиском по форуму:
dajver
 Аватар для dajver
406 / 270 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
03.12.2013, 01:49     Widget и статические данные #8
Цитата Сообщение от VZRos Посмотреть сообщение
Да я уже думал об этом - придется... Все равно спасибо - Только вот почему такое странное поведение?
Возможно каждый раз когда производится звонок сбивается все данные в телефоне, а соответственно и в вашей программе, а возможно и не так, причин может быть куча.
Yandex
Объявления
03.12.2013, 01:49     Widget и статические данные
Ответ Создать тему
Опции темы

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