Mục đích của việc sử dụng android.intent.category.DEFAULT
trong trường Danh mục của Bộ lọc Ý định là gì?
Mục đích của việc sử dụng android.intent.category.DEFAULT
trong trường Danh mục của Bộ lọc Ý định là gì?
Câu trả lời:
Các danh mục được sử dụng cho Ý định ngầm. Vì vậy, nếu Hoạt động của bạn có thể được bắt đầu bằng Ý định ngầm khi không có danh mục cụ thể nào khác được chỉ định cho hoạt động, thì bộ lọc Ý định của hoạt động phải bao gồm danh mục này. (ngay cả khi bạn có các danh mục khác trong bộ lọc Ý định). Nếu bạn chắc chắn rằng hoạt động của mình phải được gọi với bất kỳ Danh mục nào khác, đừng sử dụng Mặc định.
Đặt Danh mục thành Mặc định không có nghĩa là Hoạt động này sẽ được sử dụng theo mặc định khi ứng dụng của bạn khởi chạy. Hoạt động chỉ nói với hệ thống rằng " Ồ, tôi có thể bắt đầu, ngay cả khi danh mục của Ý định khởi đầu được đặt thành Không có gì cả! "
Loại này chủ yếu được sử dụng cho các ý định ngầm. Nếu hoạt động của bạn muốn được bắt đầu bởi một ý định ngầm, nó nên bao gồm catetory này trong bộ lọc của nó.
Tôi nghĩ thuật ngữ "default" nên được hiểu là " ứng cử viên mặc định ". Nếu hành động trên một phần dữ liệu giải quyết thành nhiều hoạt động, thì Android sẽ hiển thị tất cả các ứng cử viên cho người dùng và người dùng có thể chọn mặc định ưa thích của mình.
Tài liệu tham khảo:
http://developer.android.com/guide/components/intents-filters.html
Trích xuất từ trang đó:
Android xử lý tất cả các ý định ngầm được truyền vào tostartActivity () như thể chúng chứa ít nhất một danh mục: "android.intent.category.DEFAULT" (hằng số CATEGORY_DEFAULT). Do đó, các hoạt động sẵn sàng nhận ý định ngầm phải bao gồm "android.intent.category.DEFAULT" trong bộ lọc ý định của chúng. (Bộ lọc có cài đặt "android.intent.action.MAIN" và "android.intent.category.LAUNCHER" là ngoại lệ. Chúng đánh dấu các hoạt động bắt đầu nhiệm vụ mới và được hiển thị trên màn hình trình khởi chạy. Chúng có thể bao gồm "android.intent .category.DEFAULT "trong danh sách các danh mục, nhưng không cần.)
Nó thực sự là để đảm bảo các hoạt động khác của bạn có thể được gọi ra khi ứng dụng đang chạy. LAUNCHER sẽ đặt hoạt động có nó trở thành hoạt động đầu tiên bắt đầu. Để sử dụng ý định để thực hiện các hoạt động khác, chúng phải được liệt kê là hoạt động "thực tế" bằng cách đặt DEFAULT. Đó là từ những gì tôi biết vì vậy đừng trích dẫn tôi nếu nó sai.
Các hoạt động sẽ cần hỗ trợ CATEGORY_DEFAULT để Context.startActivity () có thể tìm thấy chúng.
Để nhận được ý định ngầm, bạn phải bao gồm danh mục CATEGORY_DEFAULT trong bộ lọc ý định. Các phương thức startActivity () và startActivityForResult () coi tất cả các ý định như thể chúng đã khai báo danh mục CATEGORY_DEFAULT. Nếu chúng tôi không khai báo nó trong bộ lọc ý định của mình, sẽ không có ý định ngầm nào giải quyết hoạt động của chúng tôi.
Nó được sử dụng để khai báo một số hoạt động là hành động mặc định (như tên gọi của nó gợi ý). Hãy xem xét chúng tôi có một ứng dụng notepad (đề cập đến mẫu notepad android). Trang đầu tiên của ứng dụng bao gồm danh sách tất cả các tệp notepad. Khi một tệp notepad được chọn, một trong các thao tác như chỉnh sửa ghi chú, xóa ghi chú, v.v. có thể được thực hiện. Nhưng tôi muốn thực hiện chỉnh sửa làm hành động mặc định của mình, nghĩa là khi tôi nhấn nút chính giữa của bàn phím, cửa sổ chỉnh sửa sẽ mở ra.
https://developer.android.com/guide/components/intents-filters
Để nhận được ý định ngầm, bạn phải bao gồm danh mục CATEGORY_DEFAULT trong bộ lọc ý định. Các phương thức startActivity () và startActivityForResult () coi tất cả các ý định như thể chúng đã khai báo danh mục CATEGORY_DEFAULT. Nếu bạn không khai báo danh mục này trong bộ lọc ý định của mình, sẽ không có ý định ngầm nào giải quyết hoạt động của bạn.
thể loại:
android.intent.category.DEFAULT
Đối sánh với bất kỳ Ý định ngầm nào. Danh mục này phải được bao gồm cho Hoạt động của bạn để nhận được bất kỳ Ý định ngầm nào.