Computer >> Máy Tính >  >> Lập trình >> Android

Trong Android, làm cách nào để đăng ký bộ lọc Intent tùy chỉnh cho bộ thu phát sóng?

Trước khi đi vào ví dụ, chúng ta nên biết bộ lọc ý định trong android là gì. Bộ lọc ý định là một thể hiện của lớp IntentFilter. Bộ lọc ý định rất hữu ích khi sử dụng ý định ngầm, Nó sẽ không xử lý trong mã java, chúng tôi phải thiết lập nó trong AndroidManifest.xml. Android phải biết nó đang khởi chạy loại ý định nào để các bộ lọc ý định cung cấp thông tin cho android về ý định và hành động.

Trước khi khởi chạy ý định, android sẽ kiểm tra thử nghiệm hành động, kiểm tra danh mục và kiểm tra dữ liệu. Ví dụ này minh họa về cách sử dụng bộ lọc mục đích tùy chỉnh cho bộ thu phát sóng trong android.

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Thêm mã sau vào res / layout / activity_main.xml.

       

Trong đoạn mã trên, chúng ta có hai nút, một nút dùng để đăng ký ý định và một nút khác dùng để gửi dữ liệu để quảng bá.

 package com.example.andy.myapplication; nhập android.content.BroadcastReceiver; nhập android.content.Context; nhập android.content.Intent; nhập android.content.IntentFilter; nhập android.os.Bundle; nhập android. support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.RadioButton; import android.widget.Toast; public class MainActivity mở rộng AppCompatActivity {RadioButton nút radio; @Override được bảo vệ void onCreate (Gói đã lưuInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); nút cuối cùng Nút =findViewById (R.id.buton); cuối cùng Nút gửi =findViewById (R.id.buton1); send.setOnClickListener (new View.OnClickListener () {@Override public void onClick (View v) {Intent Ý định =new Intent ("com.example.andy.CUSTOM_INTENT"); sendBroadcast (ý định);}}); button.setOnClickListener (new View.OnClickListener () {@Override public void onClick (View v) {registerReceiver (mMessageReceiver, new IntentFilter ("com.example.andy.CUSTOM_INTENT"));}}); } private BroadcastReceiver mMessageReceiver =new BroadcastReceiver () {@Override public void onReceive (Bối cảnh ngữ cảnh, Ý định) {// Trích xuất dữ liệu có trong Intent String message =Ý định.getAction (); Toast.makeText (MainActivity.this, message, Toast.LENGTH_LONG) .show (); }}; @Override được bảo vệ void onPause () {super.onPause (); unregisterReceiver (mMessageReceiver); }} 

Khi bạn nhấp vào nút, nó sẽ đăng ký bộ thu bằng cách sử dụng hành động phát sóng tùy chỉnh như được hiển thị bên dưới -

 registerReceiver (mMessageReceiver, IntentFilter mới ("com.example.andy.CUSTOM_INTENT")); 

Nó là một bộ thu phát sóng động, vì vậy chúng ta nên hủy đăng ký onPause () như hình dưới đây-

 unregisterReceiver (mMessageReceiver); 

Có một nút nữa để gửi brodcast. nó sẽ gửi hành động và dữ liệu để đăng ký người nhận như hình dưới đây -

 Intent Ý định =new Intent ("com.example.andy.CUSTOM_INTENT"); sendBroadcast (ý định); 

Nó là thanh ghi quảng bá động nên chúng tôi không cần tạo tệp bộ thu mới cho bộ thu quảng bá, vì vậy chúng tôi đã khai báo bộ thu phát sóng trong cùng một hoạt động như hình dưới đây -

 private BroadcastReceiver mMessageReceiver =new BroadcastReceiver () {@Override public void onReceive (Bối cảnh ngữ cảnh, Ý định dự định) {// Trích xuất dữ liệu có trong Intent String message =Ý định.getAction (); Toast.makeText (MainActivity.this, message, Toast.LENGTH_LONG) .show (); }}; 

Trong đoạn mã trên, nó sẽ lấy dữ liệu từ ý định dưới dạng hành động và in trên Bánh mì nướng. Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn -

Trong Android, làm cách nào để đăng ký bộ lọc Intent tùy chỉnh cho bộ thu phát sóng?

Đầu tiên, chúng tôi đăng ký bộ thu bằng cách nhấp vào "nút đăng ký bộ lọc ý định" và nhấp vào gửi dữ liệu để hiển thị bánh mì nướng như hình dưới đây -

Trong Android, làm cách nào để đăng ký bộ lọc Intent tùy chỉnh cho bộ thu phát sóng?