2016-03-31 14 views
6

Trong Dự án Android hiện tại của tôi, tôi đang bắt đầu Dịch vụ qua startService(), sau đó tôi liên kết với Dịch vụ với bindService(). (Tôi làm điều này vì tôi muốn có một dịch vụ bắt đầu tôi có thể giao tiếp với, nevermind)Dịch vụ onServiceConnected chỉ được gọi sau khi bật Dịch vụ?

Sau bối cảnh bị ràng buộc với Dịch Vụ, thường onServiceConnected() của tôi ServiceConnection(mà tôi đã tạo trước đó) là được gọi là nếu tôi hiểu điều này đúng.

Tôi có thể giả định rằng onServiceConnected() chỉ được gọi sau khi tất cả mã của tôi trong Dịch vụ của tôi được thực thi không?

Trả lời

2

Tôi có thể giả định rằng onServiceConnected() chỉ được gọi sau khi tất cả mã của tôi trong onCreate of my Service được thực thi không?

Có thể.

Theo số service lifecycle diagramonBind() không được gọi cho đến sau khi onCreate() hoàn tất.

Tài liệu cho biết hệ thống gọi onServiceConnected() để phân phối IBinder được trả về theo phương thức onBind() của dịch vụ.

Do đó onCreate() được hoàn thành trước khi onServiceConnected() được gọi vì nó phụ thuộc vào giá trị trả lại của onBind() xảy ra sau onCreate(). Bạn cũng có thể thấy điều này trong sơ đồ nơi nó nói "Khách hàng bị ràng buộc với dịch vụ".

Các vấn đề liên quan