Hizmetimden CallReceiver sınıfına bir int değeri aktarmaya çalışıyorum, maalesef CallReceiver.value her zaman 0'a eşittir, başka bir değerle ayarlandıktan sonra bile. Bunu yapıcıya bir parametre olarak aktarmaya çalıştığımda, durum tam olarak aynıdır ve bu nedenle hizmetten çağrılan belirleyici yöntemlerle. Orada herhangi bir veri iletmenin gerçek bir yolu yok mu?BroadcastReceiver parametresine geçirme
Hizmeti:
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;
Alıcı:
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.
}
}
'CallReceiver' Eğer' mCallReceiver.value = değer kastettiniz, statik değildir daki 'value' alan;' yerine 'CallReceiver.value = değerin;'? –