2010-06-11 6 views
2

Было бы полезно, чтобы многие люди знали, как полностью удалить приложение с вашего устройства при тестировании. Я загрузил свое приложение много раз сейчас, а также удалил его много раз. Проблема заключается в удалении приложения, он не удаляет такие вещи, как постоянный объект, связанный с моим приложением, или изображения, загруженные через приложение. Поэтому, когда я загружаю следующую сборку, я понятия не имею, что-то сломалось, что связано с созданием постоянного объекта или получением изображений, поскольку эти элементы уже существуют из последней сборки. Я не знаю, является ли это кешем. Я не знаю, ожидалось ли это, и я должен использовать некоторую утилиту для очистки этих данных после удаления приложения. Я не могу найти много информации через базовые поисковые запросы в Интернете.Тестирование на устройстве Blackberry - добавление и удаление приложения несколько раз

Любая информация будет оценена по достоинству.

Blackberry Bold 9000. 4.6 ОС. протестирован как на SD-карте, так и на SD-карте.

ответ

1

Объекты, хранящиеся в PersistentStore, автоматически удаляются при удалении, если их интерфейсы были определены в вашем проекте. Если они из стандартного BlackBerry API, они будут придерживаться, пока они не будут удалены. E.G, если вы сохраните String в PersistentStore, он останется в PersistentStore, но если вы сохраните созданный класс, он будет удален при удалении. Поэтому, если вы хотите, чтобы эти объекты были удалены автоматически, просто создайте класс-оболочку и сохраните это.

Изображения, хранящиеся в файловой системе, не будут удалены, пока вы или какое-либо приложение их не удалите. Однако вам должно быть легко написать приложение, которое очищает все.

+0

Точно - см. http://stackoverflow.com/questions/2879406/how-to-delete-application-data-on-install-and-reinstall/2879855#2879855 для получения такого же типа информации (элемент 2) –

+0

. Существует проблема с использованием родной классы в постоянном хранилище - как пользователь, когда вы удаляете приложение, вы ожидаете, что все его данные будут удален. Не имеет смысла тратить пространство на память для приложения, которое вы хотите удалить. Мы гарантируем, что в нашем приложении всегда использовать обертки, а не классы собственного кода. – Tamar

+0

Спасибо. Когда придет время, мне придется модифицировать это приложение. На данный момент я просто написал функцию, которая просматривает изображения и удаляет их, а также PersistentStore.destroyPersistentObject (ключ); Я могу назвать их при запуске приложения, и он стирает данные. Мои тесты прямо сейчас связаны больше с первой установкой и не столько с удалением приложения, о чем я расскажу позже. – Kai

0

Еще одно решение, которое вы можете реализовать, делает ваше приложение несколько самосознанием своих данных.

Создайте простое строковое значение, которое вы сохраняете (или, необязательно, сохраняете его в Hashtable, чтобы вы могли сохранить много свойств таким образом), который включает в себя «Версия».

При запуске приложения GUI сравните хранимую «версию» с текущей версией приложения. Если сохраненная версия не существует или существует и совпадает с ней, не предпринимайте никаких действий.

Если он существует и не соответствует, автоматически очищать старые сохраненные данные; или попросить пользователя узнать, хотят ли они, чтобы эти данные были удалены (какой из них лучше будет зависеть от вашей реализации)

Вы также можете использовать CodeModuleListener для прослушивания события удаления - когда это произойдет, вы можете очистить в то время или вместо этого.

(В стороне и немного бесстыдной саморекламы, я на самом деле в настоящее время работает над общей библиотекой для Blackberry, что упрощает управление переносимостью, а также резервное копирование/восстановление данных на рабочем столе. Я делаю это как часть из проекта BBSSH, но я буду разбивать его на отдельную библиотеку основных компонентов и публиковать его в соответствии с двойной лицензией GPL/optional. Он будет содержать крючки для очистки данных и управления версиями.)

+0

OP не сможет использовать CodeModuleListener, поскольку он был добавлен только в ОС 5.0, и это приложение тестируется в версии 4.6. – Jonathan

Смежные вопросы