어플 리케이션을 설치했을 때 메리 엄 사전 (오프라인 사전)과 같은 일부 사전은 단어가 즉시 있으며, 단어와 정의 목록을 데이터베이스에 삽입하는 데 시간이 필요하지 않습니까? 나는 초보자이며 현재 약 30K 단어로 구성된 안드로이드 응용 프로그램을 개발 중이며 사용자가 특정 데이터를 검색하기 전에 데이터베이스에 모든 데이터를 삽입하는 데 약 15 분 이상이 소요됩니다. 그리고이 문제를 해결할 수있는 방법을 찾고 있습니다. 누군가 제게 그것을 할 수있는 방법을 말해 줄 수 있습니까? 데이터가 하나씩 삽입 될 때까지 기다릴 필요없이 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
는 설치의 당신이답변
내 생각 엔이 응용 프로그램은 이미 필요한 모든 데이터가 채워진 SQLite 데이터베이스를 사용하고 있습니다. 당신은이 같은 뭔가 앱에 인구 데이터베이스를 가져올 수 있습니다
공용 클래스 DataBaseAdapter {
String DB_NAME = "DBNAME.db";
String DIR = "/data/data/packageName/databases/";
String DB_PATH = DIR + DB_NAME;
private DataBaseHelper mDbHelper;
private SQLiteDatabase db;
private Context context;
public DataBaseAdapter(Context context) {
this.context = context;
mDbHelper = new DataBaseHelper(this.context);
}
class DataBaseHelper extends SQLiteOpenHelper {
private boolean createDatabase = false;
@SuppressWarnings("unused")
private boolean upgradeDatabase = false;
Context context;
public DataBaseHelper(Context context) {
super(context, DB_NAME, null, 1);
this.context = context;
}
public void initializeDataBase() {
getWritableDatabase();
if (createDatabase) {
try {
copyDataBase();
} catch (IOException e) {
throw new Error("Error copying database");
}
}
}
private void copyDataBase() throws IOException {
InputStream input = context.getAssets().open(DB_NAME);
OutputStream output = new FileOutputStream(DB_PATH);
byte[] buffer = new byte[1024];
int length;
try {
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
}
finally {
try {
if (output != null) {
try {
output.flush();
} finally {
output.close();
}
}
} finally {
if (input != null) {
input.close();
}
}
}
getWritableDatabase().close();
}
public void onCreate(SQLiteDatabase db) {
createDatabase = true;
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
upgradeDatabase = true;
}
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
}
}
public DataBaseAdapter open() {
mDbHelper.initializeDataBase();
if (db == null)
db = mDbHelper.getWritableDatabase();
return this;
}
public void close() {
db.close();
}
은}
당신이 다음 데이터베이스에서 데이터를 가져 오는 방법을 추가 할 수 있습니다이 클래스를 사용할 수 있습니다 귀하의 활동에 열려 다음 데이터를 얻을 수있는 방법을 호출하여 닫습니다.
umm "가져온 데이터가 많이 들어있는 데이터베이스"가 무엇으로 구성되어야하는지 알 수 있습니까? insert 문 목록이 포함되어 있어야합니까? – AuroraBlaze
예 행이 이미 가득차있는 데이터베이스 ... –
이 섹션에 대한 연구를 했었지만 다음으로 채워진 데이터베이스를 가져야한다는 것을 알았습니다. 채워진 데이터베이스를 얻는 방법/추출 된 데이터베이스를 신청? – AuroraBlaze
애플리케이션 오프라인 액세스를 위해 미리 채워진 데이터베이스를 포함해야한다 감사드립니다. 이렇게하면 각 사용자가 장치에서 INSERT 단계를 실행하지 않아도됩니다.
삽입 사후 설치 프로그램을 실행해야하는 특별한 이유가 있습니까?
나는 merrian 사전과 비슷하게 만들고 싶습니다. 하지만 그것을 구현하는 방법을 잘 모르겠습니다, 그래서 내가 데이터베이스에 삽입하기 전에 그것은 먼저 단어를 2 부분으로 분리됩니다 txt 파일에 단어 목록을 가지고로서 당분간 삽입을 사용하고 있습니다, 그러나 그것은 모든 것을로드하기 위해 약 15 분이 걸립니다. 미리 채워진 데이터베이스는 무엇으로 구성되어야합니까? 내가 참조 할 수있는 자습서가 있습니까? – AuroraBlaze
- 1. Parallel.ForEach가 완료 될 때까지 기다릴 수있는 방법
- 2. 이전 데이터가 Unity3d의 데이터베이스에 삽입 될 때마다
- 3. Javascript - 페이지로드가 끝날 때까지 기다릴 필요없이 DIV 크기 설정
- 4. 브라우저가 다시 시작/종료 될 때까지 데이터가 지속되도록 크로스 라이더 로컬 데이터베이스에 데이터를 저장하는 방법
- 5. 중요한 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
- 6. 약속을 기다릴 때까지 기다림
- 7. initializecomponent가 완료 될 때까지 기다릴 수있는 방법
- 8. JQuery와는 : 어떤 이벤트가 완료 될 때까지 기다릴
- 9. 캐시 데이터가 변경 될 때까지
- 10. 그래프 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
- 11. Angularfire : firebase가로드 될 때까지 기다리는 방법은 무엇입니까?
- 12. jQuery 이벤트는 데이터가 페이지에로드 될 때까지 대기합니다.
- 13. 중단없이 데이터가 다운로드 될 때까지 대기
- 14. 응용 프로그램이 컴파일 될 때까지 기다릴 때해야 할 일은 무엇입니까?
- 15. 데이터가 파싱 될 때까지 디스플레이를 지연시키는 방법은 무엇입니까?
- 16. Codeigniter에서 세션 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
- 17. 트리 기반 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
- 18. json 형식으로받은 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
- 19. 데이터베이스에 개정 데이터를 저장하는 방법은 무엇입니까?
- 20. 에뮬레이터의 데이터를 sqlite 데이터베이스에 저장하는 방법은 무엇입니까?
- 21. 신용 카드 데이터를 데이터베이스에 저장하는 방법은 무엇입니까?
- 22. 온라인 데이터베이스에 데이터를 저장하는 방법은 무엇입니까?
- 23. 새 데이터가 데이터베이스에 추가 될 때까지 페이지 새로 고침
- 24. Portia, 데이터를 데이터베이스에 저장하는 방법?
- 25. 유효한 데이터가 입력 될 때까지 무한 루프를 입력하는 방법은 무엇입니까?
- 26. PHP 세션 데이터를 데이터베이스에 저장하는 가장 좋은 방법은 무엇입니까?
- 27. 지연으로 데이터를 저장하는 방법은 무엇입니까?
- 28. 데이터베이스에 Json을 삽입/저장하는 방법
- 29. phonegap에 데이터베이스에 데이터를 저장하는 방법
- 30. 할당량이 보충 될 때까지 memcache 값을 저장하는 방법은 무엇입니까? 위해
"약 15 분 이상 소요"- 파일을 읽고 그 방식으로 DB를 만들고 있습니까? 더 빨리/assets /에있는 sqlite db를 사용하여 배송하고 즉시 사용할 수 있도록 데이터 디렉토리에 복사하는 것이 더 빠릅니다. 여기를 참조하십시오 : http://stackoverflow.com/questions/6198528/how-to-create-sqlite-database-at-the-time-of-android-app-installation –