내 앱이 수행하는 작업입니다. 인터넷 목록에 위치 정보가있는 파일이 있습니다. 해당 파일을로드하고 휴대 전화의 데이터베이스에 위치를 저장합니다. 또한 매 24 시간마다 동일한 파일을 다운로드하고 업데이트가 있는지 확인합니다. 내가하고 싶은 일은 다음에 있습니다. 파일의 현재 버전을 그 파일에 넣고 싶습니다. 다운로드 할 때 이전 버전과 버전을 비교하고, 다른 경우 현재 테이블을 삭제하고로드하려고합니다 모든 위치가 다시 나타납니다.앱 실행 중 데이터베이스 업데이트
현재 내 앱은 다음을 수행하고 있습니다. IntentService를 트리거하는 알람이있어서 파일을 다운로드 한 다음 데이터베이스에있는 각 위치를 확인하고 그렇지 않은 경우에는 삽입합니다.
내가 원한다면 : IntentService는 먼저 다운로드 한 파일의 버전이 이전 버전과 다른지 확인하고, 파일의 버전이 이전 버전과 다른지 확인한 다음 테이블을 삭제하고 파일의 모든 위치를 새 테이블에 삽입합니다.
저는 ContentProvider 및 SQLiteOpenHelper를 사용하여 데이터베이스를 관리하고 있습니다. 나는 어떻게 든 SQLiteOpenHelper의 onUpgrade 메서드를 트리거해야한다고 생각하지만 정확히 어떻게 해야할지 모르겠다.
도움을 주시면 감사하겠습니다.
즉, SQLiteOpenHelper의 생성자에서 증가 된 데이터베이스 버전을 넣어야한다는 의미입니까? – davidmilicevic97
예, 정적 필드를 사용하여 데이터베이스 버전을 설정하는 것이 좋습니다. 그리고 인수로 슈퍼 생성자로 전달 –
하지만 내 문제는 ContentProvider의 onCreate 메서드에서 해당 생성자를 호출하는 것이므로 응용 프로그램이 시작될 때 onCreate가 호출된다고 생각합니다. 어디에서 그 생성자를 호출해야합니까? 내 코드를 넣을 수 있으면 편리하다. – davidmilicevic97