Срок действия идентификатора AppWidget - PullRequest
4 голосов
/ 19 марта 2012

У меня есть приложение с некоторыми AppWidget с. Я храню некоторую информацию о каждом виджете, включая его appWidgetId, в базе данных - мне нужна эта информация для правильного обновления каждого виджета. Проблема в том, что после перезагрузки устройства я больше не могу обращаться к этим appWidgetId, так как кажется, что они меняют свои значения. Как я могу преодолеть эту проблему? Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 20 марта 2012

Похоже, что только на некоторых устройствах идентификаторы appwidget изменяются при перезагрузке (из-за ошибки).См. эту тему .

Я посмотрел на источник Android.Идентификаторы appwidget действительно сохраняются в файле на /data/system/appwidgets.xml.Возможно, на вашем устройстве есть ошибка, упомянутая в ветке выше.

Я не могу придумать подходящий обходной путь.

1 голос
/ 20 марта 2012

Я думаю, Дирадж прав. Я также являюсь разработчиком виджетов Android и делаю то же самое, что и вы: я сохраняю настройки для каждого виджета, запоминая WidgetId. Это работает безупречно на всех устройствах, которые я знаю. Идентификаторы не меняются после перезагрузки на всех устройствах, которые я знаю. Вы уверены в своих наблюдениях?

0 голосов
/ 19 марта 2012

Новый appWidgetId генерируется в R.java каждый раз, когда вы запускаете приложение вместо сохранения идентификатора из R.java, вы можете хранить идентификатор из android: id = "@ + id / btn_add" в вашей базе данных.

...