Android Sqlite数据在关闭最近的应用程序后不显示
每次我停止应用程序时,数据库中的数据都不会显示,数据库是从第一个数据库创建的。 我不知道问题出在哪里 需要更多和准确的指导 现在信息被存储和显示,但当应用程序从最近的应用程序关闭时,数据库将重建Android Sqlite数据在关闭最近的应用程序后不显示,android,sqlite,Android,Sqlite,每次我停止应用程序时,数据库中的数据都不会显示,数据库是从第一个数据库创建的。 我不知道问题出在哪里 需要更多和准确的指导 现在信息被存储和显示,但当应用程序从最近的应用程序关闭时,数据库将重建 public SevenLearnDatabaseOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); this.context = context; } @Overri
public SevenLearnDatabaseOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL("CREATE TABLE IF NOT EXISTS " + POST_TABLE_NAME + " (" +
COL_ID + " INTEGER PRIMARY KEY, " +
COL_PAGE + " TEXT, " +
COL_PAGE2 + " TEXT, " +
COL_NIAT + " TEXT, " +
COL_DATE + " TEXT);");
Log.e(TAG, "onCreate: " + "create database");
} catch (SQLException e) {
Log.e(TAG, "onCreate: " + e.toString());
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public boolean addPost(Post post) {
ContentValues cv = new ContentValues();
cv.put(COL_ID, post.getId());
cv.put(COL_PAGE, post.getPage());
cv.put(COL_PAGE2, post.getPage2());
cv.put(COL_NIAT, post.getNiat());
cv.put(COL_DATE, post.getDate());
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
long isInserted = sqLiteDatabase.insert(POST_TABLE_NAME, null, cv);
Log.i(TAG, "addPost: " + isInserted + "-" + post.getDate());
if (isInserted > 0) {
return true;
} else {
return false;
}
}
public void addPosts(List<Post> posts) {
for (int i = 0; i < posts.size(); i++) {
addPost(posts.get(i));
}
}
public List<Post> getPosts() {
List<Post> posts = new ArrayList<>();
SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM " + POST_TABLE_NAME, null);
cursor.moveToFirst();
if (cursor.getCount() > 0) {
while (!cursor.isAfterLast()) {
Post post = new Post();
post.setId(cursor.getInt(0));
post.setPage(cursor.getString(1));
post.setPage2(cursor.getString(2));
post.setNiat(cursor.getString(3));
post.setDate(cursor.getString(4));
posts.add(post);
cursor.moveToNext();
}
}
cursor.close();
sqLiteDatabase.close();
System.out.println("rrrrrrrrrrrrrrr" + cursor.getCount());
return posts;
}
我相信这段代码会导致getPosts方法失败,因为在调用Cursor.getCount时游标被关闭
cursor.close();
sqLiteDatabase.close();
System.out.println("rrrrrrrrrrrrrrr" + cursor.getCount());
return posts;
尝试将此更改为:-
System.out.println("rrrrrrrrrrrrrrr" + cursor.getCount()); //<<<< MOVED BEFORE CURSOR CLOSE
cursor.close();
sqLiteDatabase.close();
return posts;
请向我们显示数据库名称和数据库版本。public static final String DATABASE\u NAME=android.android.eshgh;公共静态最终int数据库_VERSION=1;感谢您现在查看,数据库是如何在您的应用程序中重新构建的?你发布的代码没有什么大问题。如何在数据库中存储和显示条目?