- Là những gì một Ý định trong Android?
- Ai đó có thể xây dựng với một ví dụ?
- Các loại ý định là gì và tại sao chúng ta đang sử dụng chúng?
- Tại sao Ý định rất quan trọng trong Android?
Câu trả lời:
Một ý định là một "ý định" để thực hiện một hành động; nói cách khác,
một đối tượng nhắn tin bạn có thể sử dụng để yêu cầu một hành động từ một thành phần ứng dụng khác
Một ý định về cơ bản là một thông điệp để nói rằng bạn đã làm hoặc muốn điều gì đó xảy ra. Tùy thuộc vào ý định, các ứng dụng hoặc HĐH có thể đang lắng nghe và sẽ phản ứng tương ứng. Hãy nghĩ về nó như một email nổ cho một nhóm bạn, trong đó bạn bảo bạn John của mình làm gì đó hoặc cho những người bạn có thể làm X ( "bộ lọc ý định" ), để làm X. Những người khác sẽ bỏ qua email, nhưng John (hoặc những người bạn có thể làm X) sẽ phản ứng với nó.
Để nghe ý định phát sóng (như tiếng chuông điện thoại hoặc tin nhắn SMS được nhận), bạn thực hiện một máy thu quảng bá , sẽ được thông qua ý định đó. Để tuyên bố rằng bạn có thể xử lý mục đích ứng dụng của người khác như "chụp ảnh", bạn khai báo bộ lọc ý định trong tệp kê khai của ứng dụng .
Nếu bạn muốn thực hiện một ý định để làm một cái gì đó, như bật lên trình quay số, bạn sẽ thực hiện một ý định nói rằng bạn sẽ làm.
Một ý định về cơ bản là một thông điệp được truyền giữa các thành phần (như Hoạt động , Dịch vụ, Người nhận Phát sóng và Nhà cung cấp Nội dung ). Vì vậy, nó gần như tương đương với các tham số được truyền cho các lệnh gọi API. Sự khác biệt cơ bản giữa các lệnh gọi API và gọi các thành phần thông qua ý định là:
Tất nhiên, Ý định có thể được thực hiện để hoạt động chính xác như các lệnh gọi API bằng cách sử dụng cái được gọi là ý định rõ ràng, sẽ được giải thích sau. Nhưng thường xuyên hơn không, ý định ngầm là con đường để đi và đó là những gì được giải thích ở đây.
Một thành phần muốn gọi người khác chỉ phải thể hiện ý định thực hiện một công việc. Và bất kỳ thành phần nào khác tồn tại và tuyên bố rằng nó có thể thực hiện công việc đó thông qua các bộ lọc ý định , được nền tảng Android gọi để thực hiện công việc. Điều này có nghĩa, không thành phần nào nhận thức được sự tồn tại của nhau nhưng vẫn có thể hoạt động cùng nhau để mang lại kết quả mong muốn cho người dùng cuối.
Kết nối vô hình này giữa các thành phần đạt được thông qua sự kết hợp giữa ý định, bộ lọc ý định và nền tảng Android.
Điều này dẫn đến những khả năng lớn như:
Dưới đây là các chi tiết kỹ thuật bổ sung về Ý định từ tài liệu Android .
Một ý định là một mô tả trừu tượng của một hoạt động sẽ được thực hiện. Nó có thể được sử dụng với startActivity để khởi chạy Activity, BroadcastIntent để gửi nó đến bất kỳ thành phần BroadcastReceiver nào quan tâm và startService (Intent) hoặc bindService (Intent, ServiceConnection, int) để liên lạc với Dịch vụ nền.
Một ý định cung cấp một phương tiện để thực hiện liên kết thời gian chạy muộn giữa mã trong các ứng dụng khác nhau. Công dụng quan trọng nhất của nó là trong việc ra mắt các hoạt động, nơi nó có thể được coi là chất keo giữa các hoạt động. Về cơ bản, nó là một cấu trúc dữ liệu thụ động chứa một mô tả trừu tượng về một hành động sẽ được thực hiện. Các thông tin chính trong một ý định là:
- hành động Hành động chung sẽ được thực hiện, chẳng hạn như ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, v.v.
- dữ liệu Dữ liệu để hoạt động, như bản ghi người trong cơ sở dữ liệu danh bạ, được biểu thị dưới dạng Uri.
Ý định là một cách để nói với Android những gì bạn muốn làm . Nói cách khác, bạn mô tả ý định của bạn. Ý định có thể được sử dụng để báo hiệu cho hệ thống Android rằng một sự kiện nào đó đã xảy ra. Các thành phần khác trong Android có thể đăng ký sự kiện này thông qua bộ lọc ý định.
Sau đây là 2 loại ý định
được sử dụng để gọi một thành phần cụ thể. Khi bạn biết thành phần nào bạn muốn khởi chạy và bạn không muốn cung cấp cho người dùng quyền kiểm soát miễn phí đối với thành phần nào sẽ sử dụng. Ví dụ: bạn có một ứng dụng có 2 hoạt động. Hoạt động A và hoạt động B. Bạn muốn khởi chạy hoạt động B từ hoạt động A. Trong trường hợp này, bạn xác định mục đích rõ ràng nhắm mục tiêu hoạt độngB và sau đó sử dụng nó để gọi trực tiếp.
được sử dụng khi bạn có ý tưởng về những gì bạn muốn làm, nhưng bạn không biết nên khởi chạy thành phần nào. Hoặc nếu bạn muốn cung cấp cho người dùng một tùy chọn để chọn giữa một danh sách các thành phần sẽ sử dụng. Nếu những Ý định này được gửi đến hệ thống Android, nó sẽ tìm kiếm tất cả các thành phần được đăng ký cho hành động cụ thể và loại dữ liệu. Nếu chỉ có một thành phần được tìm thấy, Android sẽ khởi động thành phần trực tiếp. Ví dụ: bạn có một ứng dụng sử dụng máy ảnh để chụp ảnh. Một trong những tính năng của ứng dụng của bạn là bạn cung cấp cho người dùng khả năng gửi những bức ảnh anh ta đã chụp. Bạn không biết người dùng có loại ứng dụng nào có thể gửi ảnh và bạn cũng muốn cung cấp cho người dùng một tùy chọn để chọn ứng dụng bên ngoài nào sẽ sử dụng nếu anh ta có nhiều ứng dụng. Trong trường hợp này, bạn sẽ không sử dụng một ý định rõ ràng.
Một ý định rõ ràng luôn được gửi đến mục tiêu của nó, bất kể nó chứa gì; bộ lọc không được tư vấn. Nhưng một ý định ngầm định chỉ được gửi đến một thành phần nếu nó có thể đi qua một trong các bộ lọc của thành phần
Nếu một Ý định được gửi đến hệ thống Android, nó sẽ xác định các ứng dụng phù hợp cho Ý định này. Nếu một số thành phần đã được đăng ký cho loại Ý định này, Android sẽ cung cấp cho người dùng lựa chọn mở một trong số chúng.
Quyết định này dựa trên IntentFilters. Một IntentFilters chỉ định các loại Ý định mà một hoạt động, dịch vụ hoặc Bộ thu phát sóng có thể đáp ứng. Bộ lọc Intent khai báo các khả năng của một thành phần. Nó chỉ định những gì hoạt động hoặc dịch vụ có thể làm và những loại phát sóng mà Người nhận có thể xử lý. Nó cho phép thành phần tương ứng nhận Ý định của kiểu khai báo. IntentFilters thường được xác định thông qua tệp AndroidManifest.xml. Đối với BroadcastReceiver, cũng có thể định nghĩa chúng trong mã hóa. Một IntentFilters được xác định bởi các bộ lọc thể loại, hành động và dữ liệu của nó. Nó cũng có thể chứa siêu dữ liệu bổ sung.
Nếu một thành phần không xác định bộ lọc Intent, nó chỉ có thể được gọi bởi Ý định rõ ràng.
Sau đây là 2 cách để xác định bộ lọc
Nếu bạn xác định bộ lọc ý định trong tệp kê khai, ứng dụng của bạn không phải chạy để phản ứng với các ý định được xác định trong bộ lọc của nó. Android đăng ký bộ lọc khi ứng dụng của bạn được cài đặt.
Nếu bạn muốn máy thu quảng bá của bạn chỉ nhận được ý định khi ứng dụng của bạn đang chạy. Sau đó, bạn nên xác định bộ lọc ý định của bạn trong thời gian chạy (theo chương trình). Hãy nhớ rằng điều này chỉ hoạt động cho các máy thu phát sóng.
Sau khi viết một hoạt động, cần phải chuyển sang hoạt động khác để thực hiện một nhiệm vụ khác có hoặc không có thông tin từ hoạt động đầu tiên.
Nền tảng Android cho phép chuyển đổi bằng Giao diện Ý định.
Các từ được lấy từ đây: Sử dụng Intent Demo và tôi khuyên bạn nên xem qua ví dụ này vì họ cũng đã cung cấp một tệp mã. vì vậy bạn có thể sử dụng nó và dễ dàng hiểu như vậy.
Android Intent cho phép bạn điều hướng từ hoạt động Android này sang hoạt động khác. Với các ví dụ, hướng dẫn này cũng nói về các loại ý định Android khác nhau.
Android Intent có thể được định nghĩa là một đối tượng tin nhắn đơn giản được sử dụng để liên lạc từ hoạt động này sang hoạt động khác.
Ý định xác định ý định của một Ứng dụng. Chúng cũng được sử dụng để chuyển dữ liệu giữa các hoạt động.
Một ý định Android có thể được sử dụng để thực hiện 3 tác vụ sau:
Ý định có thể được phân loại thành 2 loại. Không có từ khóa cho thể loại này và chỉ là một phân loại rộng về cách sử dụng ý định Android.
Ý định rõ ràng của Android
Mục đích rõ ràng của Android là Mục đích mà bạn xác định rõ ràng thành phần cần được gọi bởi Hệ thống Android.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
Ý định Android tiềm ẩn
Ý định tiềm ẩn của Android là mục đích thay vì xác định các thành phần chính xác, bạn xác định hành động bạn muốn thực hiện. Quyết định xử lý hành động này được để lại cho hệ điều hành. HĐH quyết định thành phần nào là tốt nhất để chạy cho các ý định ngầm. Hãy cho chúng tôi xem một ví dụ:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
Để biết thêm thông tin bạn có thể truy cập dưới đây
http://developer.android.com/reference/android/content/Intent.html
Theo tài liệu của họ:
Mục đích là một đối tượng cung cấp liên kết thời gian chạy giữa các thành phần riêng biệt (chẳng hạn như hai hoạt động). Ý định đại diện cho "ý định làm một cái gì đó" của ứng dụng. Bạn có thể sử dụng ý định cho nhiều nhiệm vụ khác nhau, nhưng hầu hết chúng thường được sử dụng để bắt đầu một hoạt động khác.
Đây là liên kết với ví dụ: http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Như tài liệu mô tả, để bắt đầu một hoạt động (bạn cũng cần hiểu hoạt động đó là gì) sử dụng ý định như dưới đây
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
Một ý định là một mô tả trừu tượng của một hoạt động sẽ được thực hiện. Nó có thể được sử dụng với startActivity để khởi chạy Activity, BroadcastIntent để gửi nó đến bất kỳ thành phần BroadcastReceiver nào quan tâm và startService (Intent) hoặc bindService (Intent, ServiceConnection, int) để liên lạc với Dịch vụ nền.
Để biết thêm chi tiết, xem các liên kết sau:
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3). http://www.vogella.de/articles/AndroidIntent/article.html
Có rất nhiều bài viết có sẵn.
Ý định là gì?
Nó là một loại tin nhắn hoặc thông tin được truyền đến các thành phần. Nó được sử dụng để khởi chạy một hoạt động, hiển thị trang web, gửi sms, gửi email, v.v.
Có hai loại ý định trong Android:
Ý định ngầm
định
Mục đích ngầm được sử dụng để gọi các thành phần hệ thống
Thí dụ
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
Mục đích rõ ràng được sử dụng để gọi lớp hoạt động.
Thí dụ
Ý định = newIntent (this, SecondActivity. Class);
startActivity(intent);
bạn có thể đọc thêm
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
Trong một cái nhìn rộng, chúng ta có thể định nghĩa Ý định là
Khi một Hoạt động muốn bắt đầu một hoạt động khác, nó tạo ra một Đối tượng gọi là Ý định chỉ định Hoạt động nào nó muốn bắt đầu.
Một ứng dụng Android có thể chứa 0 hoặc nhiều hoạt động. Khi ứng dụng của bạn có nhiều hoạt động, bạn thường cần điều hướng từ hoạt động này sang hoạt động khác. Trong Android, bạn điều hướng giữa các hoạt động thông qua những gì được gọi là mục đích. Bạn có thể chuyển một số dữ liệu cho hoạt động mà bạn muốn bắt đầu thông qua ý định, bằng cách sử dụng putExtra ().
Từ liên kết giấyDeep Dive into Android IPC/Binder Framework atAndroid Builders Summit 2013
Mục đích được hiểu trong một số dòng nhỏ nhưng hiệu quả
Từ chủ đề này, một câu trả lời đơn giản của kiến trúc sư Android Dianne Hackborn nói rằng data container
nó thực sự là như vậy.
Từ quan điểm kiến trúc Android :
Ý định là một thùng chứa dữ liệu được sử dụng để liên lạc giữa các quá trình. Nó được xây dựng trên đỉnh của Binder
quan điểm kiến trúc Android.
Ý định được sử dụng để bắt đầu một hoạt động khác từ một hoạt động. Về cơ bản, nó được sử dụng cho một số mục đích như gửi dữ liệu đến một hoạt động khác từ một hoạt động và cho các mục đích kích hoạt.
Chúng cơ bản có hai loại
Ý định ngầm.
Ý định rõ ràng.
Là người mới bắt đầu tôi biết nhiều về điều này, tôi nghĩ rằng điều này sẽ đưa ra một số ý tưởng cơ bản về ý định của Android