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

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

Войти
Регистрация
Восстановить пароль
 
VZRos
0 / 0 / 0
Регистрация: 01.12.2013
Сообщений: 4
#1

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

02.12.2013, 00:01. Просмотров 353. Ответов 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):

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

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

Widget не работает OnUpdate - Программирование Android
собственно в OnResive вижу получение события APPWIDGET_UPDATE, однако Log.w("OnUpdate", "Do"); // !!!!!!----!!!!!! не...

Custom Fonts in widget - Программирование Android
Столкнулся с такой проблемой, что не могу сделать шрифт для виджета в приложении. Как для обычного TextView и так знаю, но для виджета...

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

Файл не найден: Widget.obj - Программирование Android
Всем привет! В Qt creator создал приложение Qt Widget. При сборке проекта вылазиет куча ошибок, связанных общей проблемой "Файл не...

7
dajver
410 / 274 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
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 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
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 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
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 / 18
Регистрация: 18.09.2010
Сообщений: 1,112
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
Привет! Вот еще темы с ответами:

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

Unknown member align_normal of android.widget.gridlayout.alignment - Программирование Android
Подскажите почему ALIGN_NORMAL подчеркивается красным? Здесь мой канвас private void doDraw(Canvas canvas) { ...

Eclipse proguard public class android.support.v7.internal.widget.ActionBarView.HomeView - Программирование Android
Добрый день. Сейчас изучаю разработку под андроид. Споткнулся на следующей ошибке This class should be public...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те - Программирование Android
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити, на нем лежит Layout (горизонтальный) в котором 2й...


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

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

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