2

你能解释一下,为什么我得到 0.0 值,当我收到,例如 5 来自另一个班级的一个班级?

    public class PSLServiceMain extends Activity implements SensorEventListener {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
            PSLService LightSensorValue = new PSLService();
            LightSensorValue.LightSensor = 5;
           .........................
        }
    }


    @SuppressLint("Wakelock")
    public class PSLService extends Service {
    ............
        float LightSensor;
      .............
     }
}

这是我的问题代码的一小部分。

编辑

是的,抱歉解释不好。所以,我想在我的主类 PSLServiceMain 中获取光传感器值并将其发送到 calss PSLService。问题是当一个变量是静态的时,它的值被发送到另一个类。当它不是静态的(实例)时,我得到 0.0

4

1 回答 1

1

你的问题是你认为你试图用这条线实现的目标......

PSLService LightSensorValue = new PSLService();

AndroidService是一个特殊的 Java 类,您不需要创建Serviceusing new- 相反,您需要使用startService(...)系统将为Service您创建并调用其设置Service为运行状态所需的各种生命周期方法。

要点是 - 您不应该尝试直接操作Service. 如果您需要将某种数据传递给 aService您应该在Intent用于启动Service.

或者,可以绑定到 aService并使用IBinder绑定到Service.

编辑:您可以在文档扩展 Binder 类中查看如何使用绑定服务

于 2013-10-12T22:08:32.467 回答