为什么Stetho中不显示数据库

时间:2019-06-11 08:38:18

标签: android android-sqlite android-room stetho

我的应用程序中有一个数据库。这是我的创建方式:

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中检查数据库中的数据时,这里什么也没有:

enter image description here

那怎么了,我该如何解决这个问题?在我看来,这可能是创建数据库时遇到的问题,但我使用的方法与往常一样,通常可以正常工作

1 个答案:

答案 0 :(得分:0)

像在应用程序的setupDebugTools()中调用onCreate()

 {
   super.onCreate()
   setupDebugTools()
 }

还有

  private void setupDebugTools() {

        if (BuildConfig.DEBUG) {
            Stetho.initializeWithDefaults(this)

        }

    }

更多information