Почему база данных не отображается в Stetho - PullRequest
0 голосов
/ 11 июня 2019

У меня есть база данных в моем приложении. Вот как я его создаю:

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 голосов
/ 11 июня 2019

вызов setupDebugTools() в приложении onCreate() как

 {
   super.onCreate()
   setupDebugTools()
 }

И

  private void setupDebugTools() {

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

        }

    }

для получения дополнительной информации

...