Android – Broadcast Receivers

0
301

Broadcast Receivers được hiểu đơn giản là đáp ứng các tin nhắn phát ra từ các ứng dụng khác hoặc từ chính hệ thống. Những thông điệp này đôi khi được gọi là các sự kiện hoặc nội dung. Ví dụ, các ứng dụng cũng có thể bắt đầu chương trình phát thông báo để cho các ứng dụng khác biết rằng một số dữ liệu đã được tải xuống thiết bị và có sẵn để sử dụng, người sẽ chặn cuộc giao tiếp này và sẽ bắt đầu hành động thích hợp.

Có hai bước quan trọng sau để làm cho Broadcast Receiver hoạt động  –

  • Tạo ra Broadcast Receiver.
  • Đăng ký Broadcast Receiver.

Có một bước bổ sung trong trường hợp bạn sẽ thực hiện các ý định tùy chỉnh của bạn.

Tạo ra Broadcast Receiver

Một broadcast receiver được thực hiện dưới dạng lớp con của lớp BroadcastReceiver và overriding phương thức onReceive (), nơi mỗi thông điệp được nhận như một tham số đối tượng Intent.

public class MyReceiver extends BroadcastReceiver {
   @Override
   public void onReceive(Context context, Intent intent) {
      Toast.makeText(context, "Intent Detected.", Toast.LENGTH_LONG).show();
   }
}

Đăng ký Broadcast Receiver

Một ứng dụng sẽ lắng nội dung broadcast cụ thể bằng cách đăng ký một bộ broadcast trong tệp AndroidManifest.xml. Chúng ta sẽ đăng ký MyReceiver cho sự kiện đã tạo cho hệ thống ACTION_BOOT_COMPLETED và được hệ thống này kích hoạt khi hệ thống Android hoàn tất quá trình khởi động.

No automatic alt text available.

<application
   android:icon="@drawable/ic_launcher"
   android:label="@string/app_name"
   android:theme="@style/AppTheme" >
   <receiver android:name="MyReceiver">
   
      <intent-filter>
         <action android:name="android.intent.action.BOOT_COMPLETED">
         </action>
      </intent-filter>
   
   </receiver>
</application>

Bây giờ bất cứ khi nào thiết bị Android của bạn được khởi động, nó sẽ bị chặn bởi BroadRiverReceiver MyReceiver và hành động logic bên trong onReceive () sẽ được thực hiện.

Có một số sự kiện được tạo ra bởi hệ thống được định nghĩa là các trường tĩnh cuối cùng trong lớp Intent. Bảng dưới đây liệt kê một vài sự kiện quan trọng của hệ thống.

STT Sự kiện và mô tả
1 android.intent.action.BATTERY_CHANGED

Phát thanh có chứa trạng thái sạc, mức và thông tin khác về pin.

2 android.intent.action.BATTERY_LOW

Cho biết tình trạng pin yếu trên thiết bị.

3 android.intent.action.BATTERY_OKAY

Cho biết pin yếu sau khi đã ở mức thấp.

4 android.intent.action.BOOT_COMPLETED

Điều này được phát một lần, sau khi hệ thống đã hoàn thành khởi động.

5 android.intent.action.BUG_REPORT

Hiển thị hoạt động để báo cáo lỗi.

6 android.intent.action.CALL

Thực hiện cuộc gọi đến người nào đó được chỉ định bởi dữ liệu.

7 android.intent.action.CALL_BUTTON

Người dùng nhấn nút “gọi” để chuyển đến trình quay số hoặc giao diện người dùng thích hợp khác để thực hiện cuộc gọi.

8 android.intent.action.DATE_CHANGED

Ngày đã thay đổi.

9 android.intent.action.REBOOT

Khi thiết bị khởi động lại.

Broadcasting Custom Intents

Nếu bạn muốn ứng dụng của bạn tự tạo và gửi các ý định tùy chỉnh thì bạn sẽ phải tạo và gửi những ý định đó bằng cách sử dụng phương thức sendBroadcast () bên trong lớp activity của bạn.

public void broadcastIntent(View view) {
   Intent intent = new Intent();
   intent.setAction("com.tutorialspoint.CUSTOM_INTENT");
   sendBroadcast(intent);
}

Intent com.tutorialspoint.CUSTOM_INTENT cũng được đăng ký tương tự.

<application
   android:icon="@drawable/ic_launcher"
   android:label="@string/app_name"
   android:theme="@style/AppTheme" >
   <receiver android:name="MyReceiver">
   
      <intent-filter>
         <action android:name="com.tutorialspoint.CUSTOM_INTENT">
         </action>
      </intent-filter>
   
   </receiver>
</application>

Để xem các ví dụ về BroadcastReceiver, mời bạn theo đón dõi bài viết sau!

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.