Dagger-Android
Sử dụng Dagger 2 một cách đơn giản
Bài đăng này đã không được cập nhật trong 2 năm Show
Giới thiệu
Sử dụngBước 1: Thêm những phụ thuộc cần thiết
Bước 2: Cài đặt thư viện RoomRoom là một thư viện nằm trong gói Android Jetpack mới được ra mắt gần đây trong Google I/O 2018. Nó là thư viện sinh ra nhằm cung cấp một lớp trừu tượng hóa trên nền của SQLite để thao tác dễ dàng hơn và mạnh mẽ hơn. Bạn có thể tìm hiểu thêm cách implement về Room ở đây. Tạo class Entity cho RoomClass này cho phép bạn tạo các trường có tên như nào thì bảng sau này bạn lưu vào cũng sẽ như vậy. Nó cũng hỗ trợ khóa ngoại và khóa chính để bạn tùy chỉnh.@Entity(primaryKeys = ["id"]) data class MovieEntity( @SerializedName("id") val id: Long, @SerializedName(value = "header", alternate = ["title", "name"]) val header: String, @SerializedName("poster_path") var posterPath: String?, @SerializedName(value = "description", alternate = ["overview", "synopsis"]) var description: String?, @SerializedName("release_date") var releaseDate: String?, @SerializedName("runtime") var runTime: Long, var status: String? ) Tạo class Dao cho RoomClass này cho phép bạn viết những hàm trừu tượng để thêm, sửa, xóa dữ liệu có trong bảng bằng các hàm với các annotation có sẵn của Room.@Dao interface MovieDao { /* Method to insert the movies fetched from api * to room */ @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertMovies(movies: List Tạo databaseTạo database với model là class entity và một vài tham số có sẵn của database@Database(entities = [MovieEntity::class], version = 1, exportSchema = false) abstract class AppDatabase : RoomDatabase() { abstract fun movieDao(): MovieDao } Bước 3: Cấu hình Api ServiceChúng ta đã cấu hình database SQLite ở local ở bước trên, đến đây chúng ta cần phải cấu hình api để gọi dữ liệu về. Tạo Api responsedata class MovieApiResponse(val page: Long, val results: List |