Android - Lấy ngữ cảnh từ bộ thu Broadcast onReceive () để gửi tới


82

Về cơ bản, tôi muốn tạo một ý định và chuyển nó tới một dịch vụ từ onReceive () của BroadcastReceiver.

Cho đến nay tôi luôn sử dụng View.getContext (), nhưng ở đây, tôi bị mắc kẹt. Làm thế nào chính xác tôi có thể lấy bối cảnh để tôi có thể sử dụng public Intent (Context packageContext, Class<?> cls)?

Câu trả lời:


302
public abstract void onReceive(Context context, Intent intent)

onReceivecung cấp cho bạn bối cảnh. Nhiều hơn những gì bạn muốn?


8
Ồ nghiêm túc, tôi đã không nhìn thấy nó cho đến khi tôi nhìn thấy điều này.
Blasanka

2

Vâng, Câu trả lời được đề cập ở trên không có ích gì. Bạn có thể sử dụng ngữ cảnh miễn là bạn đang ở trong OnReceive. khi bạn viết mã trở lại từ onReceive, ngữ cảnh không còn tồn tại.

Vì vậy, báo cáo vấn đề của bạn nói rằng bạn muốn bắt đầu dịch vụ bằng cách sử dụng ngữ cảnh này trong quá trình tạo ý định của bạn và sau đó gọi startService với đối tượng ngữ cảnh này. Điều đó không thể được thực hiện.

Đọc phần này những gì có thể và không thể làm trong ngữ cảnh BroadcastReceiver.

http://developer.android.com/reference/android/content/BroadcastReceiver.html


những gì bạn nói là không đúng sự thật. bạn có thể bắt đầu một dịch vụ từ BroadcastReceivers, nhưng không thể liên kết với chúng.
Bardya Momeni

0

Trong BroadcastReceiver,

onReceive(Context context, Intent intent)

phương pháp cung cấp ngữ cảnh

vì thế

để bắt đầu sử dụng hoạt động

context.startActivity(intent);

và để bắt đầu sử dụng dịch vụ

context.startService(intent);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.