Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
#1

Widget и статические данные - Программирование Android

02.12.2013, 00:01. Просмотров 373. Ответов 7
Метки нет (Все метки)

Всем привет!
Столкнулся со следующим.
Имеется класс виджета и в нем статическое данное - некий мой класс, который я использую в функции 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();
...

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

AutoUpdate Widget
Доброго времени суток! Подскажите пожалуйста, как сделать сервис..который...

Widget + activity
Добрый день!!! Создаю простенький виджет-диктофон и кнопка для открытия...

Widget не работает OnUpdate
собственно в OnResive вижу получение события APPWIDGET_UPDATE, однако ...

Custom Fonts in widget
Столкнулся с такой проблемой, что не могу сделать шрифт для виджета в...

Android.support.v7.widget.GridLayout
Друзья, помогите пожалуйста! Никак не получается включить GridLayout в макет из...

Custom Google Maps Widget ?
Привет! Пытаюсь понять, на сколько реально реализовать на картах Гугл v.2...

7
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
02.12.2013, 15:22 #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();
...

Кто знает. ответьте пож-та?
что то я не смог понять сути проблемы, в чем сопсно ошибка?
0
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
03.12.2013, 00:29  [ТС] #3
Проблема: Класс FileUtils после каждого звонка создается новый. Вызывается конструктор итд итп. Все данные класса FileUtils, которые я инициализировал по ходу программы, создаются заново.
0
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
03.12.2013, 00:39 #4
Цитата Сообщение от VZRos Посмотреть сообщение
Проблема: Класс FileUtils после каждого звонка создается новый. Вызывается конструктор итд итп. Все данные класса FileUtils, которые я инициализировал по ходу программы, создаются заново.
так может сделать проверку и вызывать его только раз в виджете?
0
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
03.12.2013, 00:57  [ТС] #5
Цитата Сообщение от dajver Посмотреть сообщение
так может сделать проверку и вызывать его только раз в виджете?
немножко не понял о чем Вы?
я удручен тем, что не могу в экземпляре статического типа хранить данные нужные мне. Каждый раз после звонка они обнуляются...
функция Update у меня вызывается раз в 30 минут и в ней я каждый раз инициирую данные экземпляра класса FileUtils. А после звонка они обнулены
0
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
03.12.2013, 01:08 #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
0
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
03.12.2013, 01:36  [ТС] #7
Да я уже думал об этом - придется... Все равно спасибо - Только вот почему такое странное поведение?
0
dajver
410 / 274 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
03.12.2013, 01:49 #8
Цитата Сообщение от VZRos Посмотреть сообщение
Да я уже думал об этом - придется... Все равно спасибо - Только вот почему такое странное поведение?
Возможно каждый раз когда производится звонок сбивается все данные в телефоне, а соответственно и в вашей программе, а возможно и не так, причин может быть куча.
0
03.12.2013, 01:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 01:49
Привет! Вот еще темы с решениями:

Файл не найден: Widget.obj
Всем привет! В Qt creator создал приложение Qt Widget. При сборке проекта...

Home Screen Widget Animation
Добрый день, пишу виджет на который выводится некий текст, раз в 10 секунд он...

Получение String из другого класса в Activity widget
Хей, гайз! Проблема такова: как передавать String между классами я и так знаю,...

Unknown member align_normal of android.widget.gridlayout.alignment
Подскажите почему ALIGN_NORMAL подчеркивается красным? Здесь мой канвас ...


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

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

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