30/09/2018, 19:44
Cho mình xin hướng giải quyết khi giao tiếp giữa Service và Activity
Các bạn cho mình xin hướng giải quyết trong trường hợp này với.
Mình có một activity và một service. Bắt đầu ở Activity mình sẽ bắt đầu Turn ON ở Switch Button để chạy service. Làm sao để khi service kết thúc thì khi OnResume trở lại Activity thì Turn OFF switch?
Bài liên quan
Khi service kết thúc, dùng BroadCastReceiver để send message tới activity báo hiệu sự kiện đã làm xong . Activity đón sự kiện này và làm gì thì tùy ý
Có thể sử dụng một cơ chế #:
À, mà cái Service của bạn chỉ chạy trong 1 Activity hay IntentService chạy ở tất cả App. Mình suggest dùng IntentService để đỡ bị block app, bạn bật Service lên, cho nó chạy, chuyển sang màn hình # làm việc #. Khi nào service xong, save cờ vào storage + báo cho Notification (hoặc Receiver) để hiển thị thông báo đã xong background task.
Mình hiện giờ đang dùng cách kiểm tra service có killed chưa.
Cách của bạn @Kameyoko dùng BroadCastReceiver thì thằng BroadCastReceiver và thằng Acitivity chỉ giao tiếp khi Activity đang chạy thôi phải ko? Khi onPause thì 2 thằng này cũng ngừng gởi nhận với nhau phải ko?
Đúng vậy. Thường thì Receiver được register trong Activity và được lắng nghe các broadcast message. Khi có 1 broadcast message, receiver sẽ bất lấy cái intent (trong có chứa data) và đưa cho Activity xử lý (chủ yếu là cập nhật lại GUI xem %progress, what happen in background)