30/09/2018, 18:36

Cần hướng dẫn về Broadcast Receiver

Em thù cái này

Em cần 1 hướng dẫn về cái Broadcast Receiver này

Giả dụ em muốn làm 1 cái Broadcast Receiver , cứ khi nào số phút hiện tại bằng x ( x này e tùy biến ) thì sẽ hiện Toast.

bên class : MyReceiver extends BroadcastReceiver thì em có thể tự xử lý được

Cái em cần hỏi là việc xử lý so sánh số phút hiện tại bằng x và sendBroadcast như thế nào ?

Hnib viết 20:45 ngày 30/09/2018

Receiver là class dùng để bắt sự kiện. Ngoài các sự kiện có sẵn trong android (hết pin, bật tắt wifi, cuộc gọi đến…) thì ta có thể tự định nghĩa ra một sự kiện. Trường hợp của bạn là mình tự định nghĩa sự kiện.

Để tạo một sự kiện thì phải tạo ra một IntentFilter trước.
Ví dụ

IntentFilter intentFilter = new IntentFilter("com.example.abc");

Sau đó tại thời điểm số phút = x thì sử dụng method sendBroadCast() để phát tán sự kiện này

sendBroadCast(intentFilter).;

Để bắt sự kiện này ở một Activity nào đó thì bạn phải đăng kí một receiver với một intent filter có action giống với action mà bạn sử dụng khi phát sự kiện (ở đây là com.example.abc). Sau đó override lại method onReceived() và thực hiện hành động nào đó ở method này khi sự kiện xảy ra.
Nhớ unregister cái receiver ở onPause để tránh leakMemory.

X viết 20:43 ngày 30/09/2018

Thời gian có thể dùng class Calendar để lấy ra.
Trong onCreate khởi tạo đối tượng từ class BR kia và cũng đồng thời override onRecieve, xử lý trong này luôn.
Tất nhiên là sau đó nhớ thêm intentfilter và unreg thằng BR này.

Điệp viết 20:40 ngày 30/09/2018

Cảm ơn bạn, mình nghĩ đi nghĩ lại chỗ này đến mức hỏng não rồi

Bài liên quan
0