Vềcơ bản,Intent là đối tượng của lớp android.content.Intent. Bạn có thể gửi Intent vào hệ thống Android với chỉđịnh thành phần mục tiêu gửi đến. Mỗi đối tượng Intent có thể chứa các thông tin sau:
- Action (hành động) - Data (dữ liệu) - Type (loại)
- Category (danh mục)
Phần “hành động” mô tả việc chúng ta cần làm, còn phần “dữ liệu” chứa thông tin cần thiết gữi kèm cho thành phần sắp được mở ra xử lý. Chẳng hạn, ta tạo Intent yêu cầu cần hiển thị thông tin, với dữ liệu đi kèm là url đến một website. Hệ thống Android sẽ lọc trong tất cả ứng dụng đã được cài đặt trên hệ thống và liệt kê ra các ứng dụng có thể xửlý được Intent này để người dùng lựa chọn. Intent trên có thểđược gọi tường minh hơn như sau:
Intent it = new Intent(“android.intent.action.VIEW”);
it.setData(Uri.parse(“http://www.google.com”));
ThS. Bùi Trung Úy 39 it.putExtra("key_name", "This is a string!");
Một số Intent không cần truyền theo dữ liệu cụ thể, mà chỉ cần truyền theo loại dữ liệu, ví dụ lấy một bản ghi trong danh sách danh bạ, ta có thểdùng Intent như sau:
Intent it = new Intent(android.content.Intent.ACTION_PICK); it.setType(ContactsContract.Contacts.CONTENT_TYPE);
Hàm setType() chỉ ra loại dữ liệu (MIME data type) của thông tin trả về cho
activity hiện tại. MIME type của ContactsContract.Contacts.CONTENT_TYPE là xâu
“vnd.android.cursor.dir/contact”.
Ngoài hành động, dữ liệu và loại dữ liệu, mỗi đối tượng Intent có thể có thêm tham số “danh mục” (category) dùng để nhóm các Activity lại theo danh mục nhằm thuận tiện cho việc lọc các Activity theo nhu cầu của ứng dụng.
Đối với Activity, để mở Activity khác, ta cần truyền Action của activity đó trong hàm dựng của đối tượng Intent như sau:
Intent it = new Intent(“com.example.LoginActivity”)
startActivity(it);
Action ởđây là “com.example.LoginActivity” còn được gọi là “component name”. Trong trường hợp Activity cần mở nằm cùng project với Activity hiện tại, ta có thể gọi ngắn gọi như sau:
Intent it = new Intent(LoginActivity.class) startActivity(it);