gradle dependencies { def arch_version = "2.2.0" implementation "androidx.lifecycle:lifecycle-viewmodel:$arch_version" implementation "androidx.lifecycle:lifecycle-livedata:$arch_version" implementation "androidx.room:room-runtime:$arch_version" } public class MyLiveData extends LiveData<String> { private MutableLiveData<String> liveData = new MutableLiveData<>(); public void setData(String data) { liveData.setValue(data); } public LiveData<String> getData() { return liveData; } } public class MyViewModel extends ViewModel { private MutableLiveData<String> data = new MutableLiveData<>(); public void setData(String newData) { data.setValue(newData); } public LiveData<String> getData() { return data; } } @Entity(tableName = "users") public class User { @PrimaryKey public int id; @ColumnInfo(name = "name") public String name; } @Dao public interface UserDao { @Query("SELECT * FROM users") List<User> getAll(); @Insert void insert(User user); @Delete void delete(User user); } @Database(entities = {User.class}, version = 1) public abstract class AppDatabase extends RoomDatabase { public abstract UserDao userDao(); } public class MyApp extends Application { private static AppDatabase database; @Override public void onCreate() { super.onCreate(); database = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "my-db").build(); } public static AppDatabase getDatabase() { return database; } } public class MyDebugActivity extends AppCompatActivity { private static final String DB_TAG = "ROOM_DEBUG"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); Stetho.RoomDatabaseInspectorModule databaseInspectorModule = new Stetho.RoomDatabaseInspectorModule( AppDatabase.getDatabase(), MyApplication.getDatabaseName()); Stetho.initialize( Stetho.newInitializerBuilder(this) .enableDumpapp( Stetho.defaultDumperPluginsProvider(this)) .enableWebKitInspector(databaseInspectorModule) .build()); } }


上一篇:
下一篇:
切换中文