Repository demo các kiến thức cơ bản và nâng cao về Activity trong Android.
- Lifecycle Example: Demo vòng đời của Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy)
- ViewModel: Quản lý dữ liệu với ViewModel để tồn tại qua các thay đổi cấu hình
Demo 4 chế độ khởi chạy Activity trong Manifest:
- Standard: Tạo instance mới mỗi lần khởi chạy
- SingleTop: Không tạo mới nếu Activity đang ở đỉnh stack (gọi
onNewIntent()) - SingleTask: Chỉ có 1 instance trong task, xóa các Activity phía trên nếu đã tồn tại
- SingleInstance: Activity chạy trong task riêng biệt, không chia sẻ với Activity khác
Demo các cờ Intent để kiểm soát backstack:
- FLAG_ACTIVITY_CLEAR_TOP: Xóa các Activity phía trên
- FLAG_ACTIVITY_NEW_TASK: Tạo task mới hoặc đưa task hiện có lên foreground
- FLAG_ACTIVITY_SINGLE_TOP: Tương tự launchMode singleTop
- Task Affinity: Nhóm các Activity vào các task khác nhau
- Always Retain Task State: Giữ trạng thái task kể cả sau thời gian dài
- Clear Task On Launch: Xóa toàn bộ Activity trong task khi launch lại
- Send Data: Truyền dữ liệu giữa các Activity bằng Intent (Parcelable, Serializable)
- Receive Data: Nhận và xử lý dữ liệu từ Activity khác
- Register For Activity Result: API mới thay thế
startActivityForResult() - Request Permissions: Xin quyền runtime (Storage, Camera, etc.)
- Pick Image: Chọn ảnh từ thư viện
- Demo nhận Intent từ các ứng dụng khác (ACTION_SEND)
- Chia sẻ text giữa các ứng dụng
- Clone repository
- Mở project bằng Android Studio
- Sync Gradle
- Chạy app trên thiết bị hoặc emulator
Purpose: Học tập và thực hành các khái niệm về Activity trong Android