Intent trong android là gì

Khi các bạn cần phải kết nối những thành phần ứng dụng android thì gần như phải sử dụng Intent. Vậy Intent là gì? phương châm và phương pháp sử dụng ra làm sao trong vận dụng Android.Bạn đã xem: Intent trong app android là gì

Bài viết này mình phía dẫn các bạn tìm hiểu bản chất cũng như cách áp dụng Intent trong game android để có thể gửi dữ liệu giữa những thành phần( Activity, Service…)

Trước đó chúng ta cũng có thể nên bài viết liên quan bài viết về vòng đời activity cùng service vào Android mà tôi đã viết nhé.

Bạn đang xem: Intent trong android là gì

Trước khi vào bài viết mình bỗng nghĩ mang lại ví dụ: Con fan làm bất kể việc gì đều phải có mục đích cả. Từ xem TV, download sắm, lập trình vận dụng … đều sở hữu một số mục tiêu đằng sau nó.

Android vận động theo bí quyết tương tự. Trước khi một ứng dụng rất có thể thực hiện một hành động nào đó(Thuật ngữ gọi là action), nó cần phải biết trước mục đích của các hành động đó, để có thể thực hiện các action kia đúng cách.

Hóa ra, con fan và game android cũng không khác biệt chút nào, đúng không ^_^Sau bài viết này, họ sẽ biết được:

Intent là gì với vai trò của Intent trong Android như thế nào?Có từng nào loại intent?Sử dụng Intent để gửi tài liệu giữa những ActivitySử dụng Parcelable và Serializable để Intent rất có thể truyền được dữ liệu là những đối tượng(Object)

Chúng ta bước đầu nhé!


*

Nội dung chính của bài bác viết

#2. Phân nhiều loại Intent#4. Truyền tài liệu giữa những Activity bởi Intent#5. Truyền tài liệu là đối tượng người sử dụng bằng intent sử dụng Parcelable với Serializable Data

#1. Intent là gì? vai trò của Intent vào Android như thế nào?

Intent là một trong những khái niệm hơi trừu tượng về công việc, công dụng có thể được thực hiện bởi áp dụng của bạn. Intent rất có thể được dùng để làm kết nối các thành phần trong ứng dụng Android. Trong quá trình kết nối, nó cũng rất có thể yêu cầu thành phần đó tiến hành một tác vụ được định trước. Những thành phần cơ phiên bản của một Intent:

Actions: Là đa số thứ nhưng Intent đề xuất thực thi, chẳng hạn như quay số năng lượng điện thoại, mở URL hoặc chỉnh sửa dữ liệu. Một action dễ dàng và đơn giản là một String biểu đạt cho tác vụ bắt buộc thực hiện. Ví dụ: ACTION_VIEW, ACTION_EDIT, ACTION_MAIN…Data: Đây chính là dữ liệu nhằm intent hoạt động. Nó được trình diễn dưới dạng Uniform Resource Identifier(Uri) – một hình trạng định danh cho một tài nguyên cố kỉnh thể. Hình dạng của Data yêu cầu (nếu có) tùy thuộc vào action. Ví dụ: bạn sẽ không muốn tạo một dial number Intent và lại lấy số điện thoại từ một hình hình ảnh đúng không?

Khả năng phối kết hợp các kích hoạt và data này chất nhận được Android biết đúng đắn intent đang yêu cầu gì và những đối tượng người sử dụng nào rất có thể thực hiện nay nó. Đơn giản như vậy!

Intents rất có thể được thực hiện để:

Mở một Activity new và truyền tài liệu cho Activity đóMở một Fragments
 / tiếp xúc giữa các Fragments.Mở hoặc dừng một Service

♥ hoàn toàn có thể bạn yêu cầu đến cách thêm Fragment vào Activity

#2. Phân một số loại Intent

Có hai các loại Intents

Explicit Intent – Intent dạng tường minh

Intent tường mình tức là khi chế tạo ra một đối tượng người tiêu dùng Intent, họ chỉ định rõ và truyền thẳng tên thành phần đích vào intent. Ví dụ: như đoạn code mặt dưới, intent được hướng đẫn rõ OtherActivity đang là thành phần nhấn và cách xử trí intent này.

val intent = Intent(this, OtherActivity::class.java)startActivity(intent)

*

Implicit Intent – Intent không tường minh

Thay vì chưng trong intent game android được hướng đẫn sẵn một Activity nào đó thực hiện, thì đã chỉ truyền vào action và gửi mang lại Android. App android sẽ dựa vào action này mà lọc hầu như thành phần nào sẽ đăng kí kích hoạt đó điện thoại tư vấn ra.

Vì vậy, apk có thể auto kích hoạt yếu tắc từ cùng một áp dụng hoặc một trong những ứng dụng khác để xử lý intent đó.

Ví dụ, họ cần đề nghị hiển thị một địa chỉ lên bạn dạng đồ. Nỗ lực vì bọn họ phải mã hóa cùng viết hẳn module phiên bản đồ để hiển thị thì rất có thể gửi vị trí đó vào intent, rồi game android sẽ tự tra cứu xem có ứng dụng nào phù hợp( như Google map chẳng hạn) để hiển thị nó.


*

Đây là một trong đoạn code minh họa đến intent ko tường minh( sử dụng ACTION_VIEWđể gọi ứng dụng nào có thể hiển thị được link)

class ImplicitIntentActivity : AppCompatActivity() override fun onCreate(savedInstanceState: Bundle?) super.onCreate(savedInstanceState) setContentView(R.layout.activity_implicit_intent) fun showWebPage(view: View) val intent = Intent(Intent.ACTION_VIEW, Uri.parse("http://www.ebookfrenzy.com")) startActivity(intent) Kết quả đã như bên dưới


*

#3. Intent Flags

Flags hệt như các tùy chọn(option) đến intent vào android. Chúng ta có thể sử dụng những flags này để thông số kỹ thuật intent, các flags này giúp game android “hành xử” cùng với intent đúng ý vật của thiết kế viên.

Xem thêm: Cách Nấu Canh Khổ Qua Không Đắng Cực Ngon, Mẹo Nấu Canh Khổ Qua Không Bị Đắng

Ví dụ: mặc định khi áp dụng intent để điện thoại tư vấn Activity thì activity đó sẽ tiến hành đưa vào stack. Với khi người dùng nhấn nút back trên điện thoại cảm ứng thông minh thì game android sẽ gọi các activity được lưu trong stack lên.

Để ngăn chặn điêu này, bạn cũng có thể dùng flag:FLAG_ACTIVITY_SINGLE_TOP. Nếu đặt flag này, thì intent sẽ không còn thể gọi activity ví như activity đó đang ở đứng đầu của stack

intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOPTương từ bỏ , thực hiện flag: FLAT_ACTIVITY_CLEAR_TOPsẽ xóa toàn bộ các activity không giống trong stack cùng đặt activity đc gọi lên top của stack.

Có tương đối nhiều flag hữu ích cho ứng dụng, chúng ta có thể tìm hiểu thêm ở đây

#4. Truyền tài liệu giữa những Activity bằng Intent

Để truyền tài liệu sang mang lại activity mới chúng ta sử dụng các cặp key-value trong hàm putExtra, putStringArrayListExtra.

putExtra chỉ truyền được tài liệu kiểu cơ bản: Int, Float, Char, Double, Boolean, String


*

Ví dụ:

val intent = Intent(this, OtherActivity::class.java)intent.putExtra("keyString", "Androidly String data")Sau đó các giá trị vào Extras được đóng gói vào Bundle trước khi nó được gởi đi.

Truy xuất dữ liệu trong một Activity mới

val bundle: Bundle? = intent.extrasval string: String? = intent.getString("keyString")val myArray: ArrayList? = intent.getStringArrayList("myArray")Intent, extras khớp ứng với getIntent(), getExtras()nếu viết bằng Java.Chúng ta vừa cần sử dụng toán tử nullable Bundle? nhằm phòng trường hòa hợp bị NullPointerExceptions khi không có dữ liệu.

Tương tự, khi mang giá trị thông qua các Key, bọn họ dùng hình dáng nullable nhằm phòng ngừa NPE có thể xảy ra khi key không thiết yếu xác

#5. Truyền tài liệu là đối tượng người sử dụng bằng intent áp dụng Parcelable và Serializable Data

Như mình đã nói trên thì với những truyền dữ liệu thường thì qua hàm putExtra(), sẽ chỉ truyền được những loại tài liệu cơ bản, quan trọng truyền được dữ liệu kiểu object.

Để khắc chế điều này, họ implement interface Parcelable hoặc Serializable.

Điểm khác nhau giữ Parcelable cùng Serializable

Parcelable Interface là 1 phần của game android SDK. Còn Serializable là 1 interface tiêu chuẩn chỉnh của Java.Trong Parcelable bạn phải đặt tất cả dữ liệu mà bạn cần truyền vào đối tượng người tiêu dùng Parcel với override lại phương thức writeToParcel(). Trong serializable chỉ cần implement interface là đủ để truyền dữ liệu.Parcelable được reviews là cấp tốc hơn Serializable.

Cách sử dụng Parcelable

Kotlin chuyển ra một số trong những annotations rất tiện nhằm lưu chúng từ việc override phương thức writeToParcel()để đưa tài liệu vào Parcelable. Vắt vào đó, bạn có thể dùng annotations