0
나는 응용 프로그램의 SQLite 데이터베이스를 CSV 파일로 내보내고 SD 카드에 저장하려고합니다. 내보내기 메서드는 DBAdapter 클래스에서 ExportToCSV로 정의되었습니다. 나는 그 앱이 SQLite 데이터베이스를 성공적으로 생성하는지 확인했다. 그러나 MainActivity에서 onPause 메서드를 사용하여 ExportToCSV를 호출하려고하면 응용 프로그램에서 데이터베이스를 내보낼 수 없습니다. 이 코드를 수정하는 방법에 대한 의견을 보내주십시오. 도와 주셔서 감사합니다! comments CSV로 안드로이드 Sqlite DB를 내보내기해야합니다
public void ExportToCSV(Cursor c, String fileName) {
int rowCount = 0;
int colCount = 0;
FileWriter fw;
BufferedWriter bfw;
File sdCardDir = Environment.getExternalStorageDirectory();
File saveFile = new File(sdCardDir, fileName);
try {
rowCount = c.getCount();
colCount = c.getColumnCount();
fw = new FileWriter(saveFile);
bfw = new BufferedWriter(fw);
if (rowCount > 0) {
c.moveToFirst();
// write the colume title
for (int i = 0; i < colCount; i++) {
if (i != colCount - 1)
bfw.write(c.getColumnName(i) + ',');
else
bfw.write(c.getColumnName(i));
}
// change the line
bfw.newLine();
// write data
for (int i = 0; i < rowCount; i++) {
c.moveToPosition(i);
Log.v("exporting data", "exportting" + (i + 1) + "line");
for (int j = 0; j < colCount; j++) {
if (j != colCount - 1)
bfw.write(c.getString(j) + ',');
else
bfw.write(c.getString(j));
}
// change line
bfw.newLine();
}
}
나는 ExportToCSV 전화 MainActivity.java에서 onPause를 사용하십시오 :
@Override
protected void onPause() {
super.onPause();
DBAdapter myDatabase=new DBAdapter(this);
myDatabase.open();
Cursor c=myDatabase.getAllgpspoint();
// this method was defined in DBAdapter.java and returned a Cursor
myDatabase.ExportToCSV(c, "IRI.csv");
myDatabase.close();
mSensorManager.unregisterListener(this);
}
"내보내기에 응답 할 수 없음"이란 무엇을 의미합니까? 어떤 함수가 호출되지 않았습니까? 예외가 있습니까? –
앱이 데이터를 계속 생성하지만 ExportToCSV가 작동하지 않는 것으로 보입니다. 내 HTC 상태에서 응용 프로그램을 실행하고, 그것은 "(응용 프로그램 데이터베이스에서) 활동 MainActivity 응답하지 않는 것을 보여 주었다." –