2010-06-11 1 views
2

많은 사람들이 테스트 할 때 장치에서 응용 프로그램을 완전히 제거하는 방법을 알고 있으면 유용 할 것입니다. 지금 내 앱을 여러 번 다운로드했으며 여러 번 삭제했습니다. 문제는 앱을 삭제할 때, 내 앱과 관련된 영구 객체 또는 앱을 통해 다운로드 한 이미지를 제거하지 않는 경우입니다. 따라서 다음 빌드를 다운로드 할 때, 영구 오브젝트를 빌드하거나 이미지를 가져 오는 것과 관련하여 파손 된 것이 있는지 여부는 알지 못합니다. 그 이유는 이러한 요소가 마지막 빌드에서 이미 존재하기 때문입니다. 이것이 캐시 일지 나는 모른다. 이것이 예상되는지 나는 모른다. 앱을 삭제 한 후에이 데이터를 지우려면 몇 가지 유틸리티를 사용해야한다. 기본 웹 검색을 통해 많은 정보를 찾을 수 없습니다.블랙 베리 장치 테스트 - 여러 번 응용 프로그램 추가 및 제거

모든 정보를 제공해 주시면 감사하겠습니다.

블랙 베리 볼드 9000 4.6 OS. SD 카드와 SD 카드없이 테스트되었습니다.

답변

1

PersistentStore에 저장된 개체는 해당 인터페이스가 프로젝트에 정의 된 경우 제거시 자동으로 삭제됩니다. 표준 BlackBerry API에서 가져온 것이면 삭제 될 때까지 계속 남아 있습니다. E.G PersistentStore에 문자열을 저장하면 PersistentStore에 남아 있지만 작성한 클래스를 저장하면 제거시 삭제됩니다. 그래서 당신이 그 객체들을 자동적으로 지우고 싶다면 단지 래퍼 클래스를 만들고 저장하십시오.

파일 시스템에 저장된 이미지는 사용자 또는 일부 응용 프로그램에서 파일을 삭제할 때까지 삭제되지 않습니다. 그러나 모든 것을 지우는 앱을 작성하는 것이 쉬워야합니다.

+0

정확히 - 참조하십시오 동일한 유형의 정보 (항목 2)에 대해 http://stackoverflow.com/questions/2879406/how-to-delete-application-data-on-install-and-reinstall/2879855#2879855 –

+0

네이티브 사용에 문제가 있습니다. 영구 저장소의 클래스 - 사용자로서 응용 프로그램을 제거 할 때 모든 데이터가 있어야합니다. 제거되었습니다. 제거하려는 응용 프로그램의 메모리 공간을 낭비하는 것은 이치에 맞지 않습니다. 우리는 앱에서 항상 래퍼를 사용하고 원시 코드 클래스는 사용하지 않도록합니다. – Tamar

+0

감사합니다. 나는 시간이 올 때이 응용 프로그램을 개조해야합니다. 지금은 단순히 이미지를 반복하고 PersistentStore를 삭제하는 함수를 작성했습니다.destroyPersistentObject (key); 앱을 시작할 때이를 호출 할 수 있으며 데이터를 지 웁니다. 지금 내 테스트는 처음 설치하는 것과 관련이 있으며 앱을 너무 많이 삭제하지는 않습니다. 나중에 설명 드리겠습니다. – Kai

0

구현할 수있는 또 다른 해결책은 앱이 데이터를 다소 자기 인식하도록 만드는 것입니다.

"버전"이 포함 된 단순한 String 값을 만듭니다 (또는 선택적으로 Hashtable에서 유지하므로 많은 속성을이 방식으로 저장할 수 있습니다).

GUI 응용 프로그램을 시작할 때 저장된 "버전"과 응용 프로그램의 현재 버전을 비교하십시오. 저장된 버전이 없거나 기존 버전과 일치하는 경우 아무런 조치도 취하십시오.

존재하고 일치하지 않으면 오래된 영구 데이터를 자동으로 정리합니다. 또는 사용자에게 해당 데이터를 삭제할지 묻는 메시지를 표시합니다 (어느 것이 더 나은지는 사용자 구현에 따라 다름)

CodeModuleListener를 사용하여 제거 이벤트를 수신 할 수도 있습니다.이 경우 제거 할 수 있습니다. 그 때 또는 그 대신에.

(제쳐두고 뻔뻔한 자기 승진으로 저는 현재 데스크탑 데이터 백업/복원뿐만 아니라 지속성을 훨씬 쉽게 관리 할 수있는 Blackberry 공유 가능 라이브러리에서 작업하고 있습니다. 하지만 BBSSH 프로젝트의 별도의 핵심 구성 요소 라이브러리로 분리하여 듀얼 GPL/선택적 상업용 라이센스하에 게시 할 예정입니다.

+0

OP는 CodeModuleListener를 사용할 수 없습니다. 이는 OS 5.0에서만 추가되었으며이 앱은 4.6에서 테스트 되었기 때문입니다. – Jonathan

관련 문제