无法使用LiveData和Room更新UI

时间:2018-07-15 15:59:05

标签: java android android-room android-livedata

我正在使用RoomLiveData读写本地SQLite数据库。我正在使用Stetho进行确认,因此我已经成功读写数据库。

我知道LiveData在单独的线程上处理功能。我正在根据我使用RecyclerView检索到的数据库信息来更新LiveData

    private void retrieveTasks() {
    final LiveData<List<Movie>> movies = mDb.movieDao().loadAllMovies();
    movies.observe(this, new Observer<List<Movie>>() {
        @Override
        public void onChanged(@Nullable List<Movie> movies) {
            for (Movie movie : movies) {
                String photoURL = "http://image.tmdb.org/t/p/w185" + movie.getPoster_path();
                Log.v("FAVORITE_URL", photoURL);
                mMovieURLS.add(photoURL);
            }
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mMovieResultsAdapter.swapDataSet(mMovieURLS);
                    mMovieResultsAdapter.notifyDataSetChanged();
                }
            });

        }
    });
}

0 个答案:

没有答案