サービスからCallReceiverクラスにint値を渡そうとしていますが、残念ながら、別の値を設定した後でも、CallReceiver.valueは常に0になります。それをパラメーターとしてコンストラクターに渡そうとしているときの状況はまったく同じであり、サービスから呼び出されるセッターメソッドでも同じです。そこにデータを渡す方法は本当にありませんか?
サービス:
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;
受信者:
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.
}
}