我再Service中实现了SensorEventListener接口,以onSensorChanged方法来监听传感器
软件的Service是需要自启动的,我在手机允许了软件的自启动
这时,当软件被划掉后台,软件会自动启动Service服务,但是注册SensorEventListener传感器失效
public class TestService extends Service implements SensorEventListener {
private SensorManager mSensorManager;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(BaseData.TAG, "***** TestService*****: 关闭服务");
}
@Override
public void onCreate() {
super.onCreate();
Log.d(BaseData.TAG, "***** TestService*****: 启动服务");
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(BaseData.TAG, "***** TestService*****: onStartCommand");
if (mSensorManager != null) {// 注册监听器
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
return START_STICKY;
}
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(BaseData.TAG, "***** TestService*****: 监测");
// 监测逻辑-达到某值-toast
}
}