Đây là kịch bản: Tôi có một WakefulBroadcastReceiver thực hiện sao lưu vào máy tính mạng hoặc đám mây. Nó được thiết lập để tắt trong đêm giữa đêm, khi tôi biết máy tính bảng sẽ có quyền truy cập vào mạng LAN . Bản sao lưu sẽ lưu trữ dữ liệu vào một vị trí và một tệp đã được "chọn" bởi đoạn mà đã khởi tạo WakefulBroadcastReceiver, bằng cách sử dụng Khung Truy cập Bộ nhớ. Vì vậy, tôi cần có thể truy cập vào nội dung ContentResolver và để thực hiện điều đó, tôi cần ngữ cảnh.Cách lấy bối cảnh trong Dịch vụ Intent
Từ tất cả các tài liệu tôi đọc các văn bản, đây là những gì BroadcastReceiver có nghĩa là để được sử dụng cho - một tiềm năng dài chạy nhiệm vụ đó nên được thực hiện ở chế độ nền khi không có nhiều khác là xảy ra. - Giống như một bản sao lưu. Tôi chưa từng thấy bất kỳ ví dụ nào đặt mọi thứ cùng nhau vào nhau .
Làm cách nào để tải ngữ cảnh trong IntentService? Ở đây là một đoạn trích của người nhận và dịch vụ lên lịch.
public class BackupAlarmReceiver extends WakefulBroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, BackupSchedulingService.class);
startWakefulService(context, service);
}
}
public class BackupSchedulingService extends IntentService {
public BackupSchedulingService() {
super("BackupSchedulingService");
}
@Override
protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
// How to get the context - it was a parameter when
// creating the new IntentService class above?
}
}
Các mã ví dụ khá nhiều sau chính xác Android tham khảo thủ công mã ở đây:
https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html
Sự khác nhau giữa 'getApplicationContext()' và sử dụng 'this' là gì? – Zapnologica
nó hoạt động trong "bảo vệ void onHandleIntent (Intent intent) {" nhưng không phải trong constructor IntentService –
@ Bạn có thể giải thích tại sao không? – SLearner