как подключить LiveData

настроил Room хочу подключить LiveData, но не понимаю как это сделать помогите пожалуйста разобраться

модель user

@Entity
public class User {
    @PrimaryKey
    public int uid;

    @ColumnInfo(name = "first_name")
    public String firstName;

    @ColumnInfo(name = "last_name")
    public String lastName;

}

userDao

@Dao
public interface UserDao {
    @Query("SELECT * FROM user")
    User getAll();

    @Query("SELECT * FROM user WHERE uid = :uid")
    User getByUid(int uid);

   /* @Query("SELECT * FROM user WHERE uid IN (:userIds)")
    List<User> loadAllByIds(int[] userIds);

   /* @Query("SELECT * FROM user WHERE first_name LIKE :first AND " +
    "last_name LIKE :last LIMIT 1")*/

    @Insert
    void insertAll(User user);

    @Update
    void update(User user);

    @Delete
    void delete(User user);

}

AppDatabase

@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract UserDao userDao();

}

App

public class App extends Application {


    final String TAG ="myLog";

    public static App instance;
    private AppDatabase database;

    @Override
    public void onCreate(){
        super.onCreate();

        //Log.d(TAG, "help");

        instance = this;
        database = Room.databaseBuilder(this, AppDatabase.class, "database")
                .build();
    }

    public static App getInstance(){
        return instance;
    }

    public AppDatabase getDatabase(){
        return database;
    }
}

MainActivity


public class MainActivity extends AppCompatActivity {

    final String TAG ="myLog";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        test();
        test1();
        test2();

    }


    // записывает данные в базу
   public void test(){

    new Thread(new Runnable() {
        @Override
        public void run() {

            AppDatabase db = App.getInstance().getDatabase();
            UserDao userDao = db.userDao();

            User user = new User();
            user.uid=2;
            user.firstName ="dasf";
            user.lastName ="asdf";
            userDao.insertAll(user);


        }
    }).start();
}


   // читает данные из базы
    public void test1() {
        new Thread(new Runnable() {
            @Override
            public void run() {

                AppDatabase db = App.getInstance().getDatabase();
                UserDao userDao = db.userDao();
                User user1 = userDao.getByUid(2);

               String vdf = user1.firstName;
                TextView textView = (TextView) findViewById(R.id.hel);
                textView.setText(vdf);
               // Log.d(TAG, vdf);
            }
        }).start();
    }

    // обновляет данные из базы
    public void test2(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                AppDatabase db = App.getInstance().getDatabase();
                UserDao userDao = db.userDao();
                User user = new User();
                user.uid=2;
                user.firstName ="Alex";
                userDao.update(user);


            }
        }).start();
    }
}

Ответы (0 шт):