Вы можете выполнять операции с БД в потоке ввода-вывода, но не просматривать связанные материалы.
Ваша эта строка:
favoriteFab.setImageResource(R.drawable.heart_favorite_border_black);
создает проблему.
Вы можетеработать только с представлениями из MainThread (поток пользовательского интерфейса)
Если ваш код лежит в Activity, то вы можете получить метод runOnUIThread()
runOnUiThread (new Thread(new Runnable() {
public void run() {
}
}));
Соберите его вместе,
public void click() {
if (isClicked) {
MoviesExecutor.getInstance().diskIO().execute(new Runnable() {
@Override
public void run() {
mDb.moviesDao().removeMovie(movies.getMovieId());
runOnUiThread(new Thread(new Runnable() {
public void run() {
favoriteFab.setImageResource(R.drawable.heart_favorite_border_black);
}
}));
}
});
isClicked = false;
} else {
MoviesExecutor.getInstance().diskIO().execute(new Runnable() {
@Override
public void run() {
mDb.moviesDao().addMovie(movies);
runOnUiThread(new Thread(new Runnable() {
public void run() {
favoriteFab.setImageResource(R.drawable.heart_favorite_black);
}
}));
}
});
Toast.makeText(this, "added", Toast.LENGTH_LONG).show();
isClicked = true;
}
}