我的应用程序中有一个数据库。这是我创建它的方式:
App
班级:
public class TraktTvApp extends Application {
private static Context sAppContext;
public static TraktTvApp instance;
private MovieDatabase database;
@Override
public void onCreate() {
super.onCreate();
sAppContext = getApplicationContext();
instance = this;
database = Room.databaseBuilder(this, MovieDatabase.class, "MovieDatabase").build();
}
@NonNull
public static Context getAppContext() {
return sAppContext;
}
public static TraktTvApp getInstance() {
return instance;
}
public MovieDatabase getDatabase() {
return database;
}
}
DAO
班级
@Dao
public interface MovieDao {
@Query("SELECT * from MovieEntity")
List<MovieEntity> getFavorites();
@Insert(onConflict = OnConflictStrategy.REPLACE)
Completable insertMovie(final MovieEntity movie);
@Delete
void deleteMovie(MovieEntity movie);
}
Database
班级
@Database(entities = {MovieEntity.class}, version = 1)
public abstract class MovieDatabase extends RoomDatabase {
public abstract MovieDao movieDao();
}
这是我调用insert
方法的方式:
mCompositeDisposable.add(Observable.fromCallable(()->movieDao.insertMovie(movieEntity))
.doOnSubscribe(disposable -> mView.showLoadingIndicator(true))
.doOnComplete(() -> {
mView.showEmptyState(false);
mView.onMoviesAdded();
})
.doOnError(throwable -> mView.showEmptyState(true))
.doOnTerminate(() -> mView.showLoadingIndicator(false))
.observeOn(Schedulers.io())
.subscribe());
但是当我想在 Stetho 中检查我的数据库中的数据时,这里什么都没有:
那么,这是怎么回事,我该如何解决这个问题?在我看来,创建数据库可能会出现问题,但我使用的方式与往常一样,通常可以正常工作