只是输入"上下文":我是android / java的新手,并且更加努力地工作了内存"密切关注",这引起了一些可能的问题笨
1)SQLiteOpenHelper.getWritableDatabase()返回指向已分配对象的指针或分配一个新的独立对象?
2)如何知道对象SQLiteOpenHelper.getWritableDatabase()是否在后台任务(线程)中工作?
3)从database.query创建的游标是依赖的,并与数据库对象共享内存(如果释放数据库将被释放)或者是一个可以在数据库内存空闲后使用的独立对象吗?
4)如果java处理内存本身,当需要Cursor.close()和SQLiteOpenHelper.getWritableDatabase()。close()时?
答案 0 :(得分:0)
成功打开后,数据库缓存,因此每次需要写入数据库时都可以调用此方法。 (确保在不再需要数据库时调用close()。)错误权限或完整磁盘等错误可能导致此方法失败,但如果问题得到解决,将来的尝试可能会成功。
2,3。一个Cursor实现,它公开SQLiteDatabase上的查询结果。 SQLiteCursor未在内部同步,因此使用来自多个线程的SQLiteCursor的代码在使用SQLiteCursor时应执行自己的同步。