7

Tôi có một số Dịch vụ lớp, đăng ký nhiều báo thức.Dịch vụ liên kết tới BroadcastReceiver

Trong lớp BroadcastReceiver của tôi, tôi muốn phương pháp onReceive() để gọi một số phương pháp của Dịch vụ lớp.

Tuy nhiên, tôi không thấy cách tôi có thể liên kết chúng với nhau. Tôi đã cố gắng để làm cho BroadcastReceiver một lớp bên trong, nhưng sau đó tôi có nhiều lỗi hơn và không thể báo động được.

Cảm ơn

+0

Tôi tìm thấy một số giải pháp thay thế để không còn liên quan nữa. Tôi vẫn muốn biết nếu điều này có thể được thực hiện. Tôi đã thử tất cả các loại peekSerivce() và sử dụng các trường cá thể tĩnh, nhưng không có trường nào hoạt động. – Mugen

Trả lời

6

Nhìn vào http://developer.android.com/reference/android/content/BroadcastReceiver.html vòng đời. BroadcastReceiver được tạo ra chỉ để xử lý một tin nhắn. Nó có nghĩa là cuộc sống của nó rất ngắn, nó cũng không trạng thái. Vì vậy, bạn không thể ràng buộc bất cứ điều gì với nó.

Dù sao bạn có thể thử để bắt đầu một dịch vụ phương pháp dạng onReceive(Context context, Intent intent) của BroadcastReceiver, như thế này:

public void onReceive(Context context, Intent intent) { 
     Intent intent2 = new Intent(context, GCMService.class); 
     intent2.putExtras(intent); 
     context.startService(intent2); 
} 

Sau đó a = dịch vụ nên xử lý một thông điệp quảng bá.

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