这似乎是一个重复的问题,但另一个问题没有有用的答案,甚至没有一个答案被接受。
我有一个完全正常工作activity
,其中ACCELEROMETER
的每个动作都受到监控。但是当我想在service
中使用相同的东西时,onSensorChanged永远不会得到任何调用。我仔细检查了一切。以及与此相关的每个问题,都没有为这个问题提供有用的答案。
这一定是可以实现的。
这就是我调用service
btnChangeTime.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//showDialog(TIME_DIALOG_ID);
Intent serviceIntent = new Intent(MainActivity.this, myService.class);
startService(serviceIntent);
这是服务:
public class myService extends Service实现SensorEventListener {
private SensorManager sensorManager;
private boolean color = false;
private View view;
private long lastUpdate;
public static final String
ACTION_LOCATION_BROADCAST = myService.class.getName() + "LocationBroadcast";
@Override
public int onStartCommand(Intent intent, int flags, int startId) { sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
lastUpdate = System.currentTimeMillis();
Log.v("SERVICE:", "CALLED");
sendBroadcastMessage("worked");
return Service.START_NOT_STICKY;
}
@Override
public void onSensorChanged(SensorEvent event) {
Log.v("SERVICE111:", "111 CALLED");
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
getAccelerometer(event);
}
}
但OnSensorChanged从未接到任何电话。