私はこれを解決するためにネット全体を検索しました。Android SQLite:2番目のアクティビティでデータベースが空になった
私のアプリケーションには、メインメニューをロードする前にSQLiteデータベースを読み込むスタートアップタスクがあります。メインメニューからアクセスできる2番目のアクティビティには、これにアクセスする必要があります。したがって、ロックエラーを止めるために、最初のアクティビティでデータベースを閉じます。
何らかの理由で、同じアクティビティと2番目のアクティビティの両方で、接続を閉じるとすぐにデータベースに行がないようです。
相続人のサンプルコード:
SQLiteDatabase db = getWritableDatabase(); // get instance of current database
db.beginTransaction(); // set exclusive mode to speed up
for(GulbArticle g : gulbArticles){
this.insert(g);
}
db.setTransactionSuccessful();
// counting here returns 315 rows using the all2() function below
db.close();
// counting here returns 0 rows using the all2() function below
ここでは、私はそう両方のケースで、私はデータベースのインスタンスを初期化するが、ためだバック
public void all2(){
SQLiteDatabase db = getReadableDatabase();
String sql = "SELECT COUNT(*) FROM "+TABLE_NAME;
SQLiteStatement statement =db.compileStatement(sql);
long count = statement.simpleQueryForLong();
Log.v("ccount2",count+"");
}
カウントを取得するために作られた機能ですもう一度やり直せないとすぐに何らかの理由で閉じてしまいます。データベースには何もないようです。たぶん私は何かシンプルなものを見逃しているが、これは本当に私を困らせている。
'db.setTransactionSuccessful()'を仮定するとそれを閉じますが、私はブール値を単にトグルすると思います。ありがとう – redroot