Tôi đang cố gắng chuyển giá trị int từ Dịch vụ của tôi đến lớp CallReceiver, tiếc là CallReceiver.value luôn bằng 0, ngay cả sau khi được đặt bằng một giá trị khác. Khi tôi đang cố gắng để vượt qua nó như là một tham số cho tình hình xây dựng là chính xác như nhau, và như vậy với các phương thức setter được gọi là từ dịch vụ. Có thực sự không có cách nào để vượt qua có bất kỳ dữ liệu?Truyền tham số cho BroadcastReceiver
dịch vụ:
SharedPreferences settings = getSharedPreferences("SETTINGS", 0);
int value = settings.getInt("value1", 0); // here the correct value is present, not 0.
CallReceiver mCallReceiver = new CallReceiver();
CallReceiver.value = value;
Receiver:
public class CallReceiver extends BroadcastReceiver {
public int value;
public CallReceiver(int value) {
this.value = value;
}
public CallReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Log.v("value", String.valueOf(value)); // here "value" = 0.
}
}
trường 'giá trị' trong' CallReceiver' không tĩnh, bạn có nghĩa là 'mCallReceiver.value = value;' thay vì 'CallReceiver.value = value;'? –