我的应用程序中有一个数据库。这是我的创建方式:
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中检查数据库中的数据时,这里什么也没有:
那怎么了,我该如何解决这个问题?在我看来,这可能是创建数据库时遇到的问题,但我使用的方法与往常一样,通常可以正常工作
答案 0 :(得分:0)
像在应用程序的setupDebugTools()
中调用onCreate()
{
super.onCreate()
setupDebugTools()
}
还有
private void setupDebugTools() {
if (BuildConfig.DEBUG) {
Stetho.initializeWithDefaults(this)
}
}