2017-07-05 39 views
6

Tôi sử dụng Thư viện Persistence Room cho ứng dụng Android của mình, nhưng sau khi tạo, tôi không thể tìm thấy tệp .sql với các bảng trên thiết bị của mình.Tại sao không có tệp cơ sở dữ liệu nào được tạo khi sử dụng Android Room?

Khi tôi tạo cơ sở dữ liệu qua SQLiteOpenHelper Tôi có thể xem tất cả các bảng trong thư mục dữ liệu trên thiết bị, nhưng khi tôi tạo cơ sở dữ liệu thông qua Phòng thì không có tệp nào ở bất kỳ đâu.

Tôi có thể xem nội dung của tất cả các bảng của mình ở đâu?

Tạo mã cơ sở dữ liệu:

@Provides 
@Singleton 
PokuponDataBase providePokuponDataBase() { 
    return Room.inMemoryDatabaseBuilder(SuperDealApp.getInstance().getApplicationContext(), PokuponDataBase.class, "PokuponRoomDatabase").build(); 
} 
+0

Hãy thử 'getDatabasePath()' như [được đề xuất tại đây] (https://stackoverflow.com/questions/44263891/how-to-use-room-persistence-library-with-pre-populated-database#comment75538553_44263891). – Sufian

Trả lời

3

tôi tìm thấy nguyên nhân gây ra biến mất cơ sở dữ liệu của tôi. Đó là bởi vì tôi tạo ra nó không chính xác. Tôi sử dụng Room.InMemoryDatabaseBuilder() thay vì đơn giản Room.databaseBuilder() và sau mỗi ứng dụng tải lại db của tôi đã được tái tạo và cơ sở dữ liệu inMemory không tạo bất kỳ tệp nào.

+2

Đăng đoạn mã trong câu hỏi có thể đã tiết kiệm được thời gian của bạn;) – Sufian

+0

@WorieN, hãy chấp nhận câu trả lời của riêng bạn là "câu trả lời" –

Các vấn đề liên quan