Я новичок в Android. Я разрабатываю приложение, которое регистрирует данные датчиков. У меня есть активность с двумя кнопками. Когда пользователь нажимает кнопку запуска, я хочу, чтобы служба запускалась и регистрировала данные датчика, пока пользователь не нажмет кнопку остановки. Я не уверен, какой тип сервиса я хочу использовать. Я читал о локальных или удаленных службах, но я не совсем понял разницу.
То, что я пробовал до сих пор:
Я создал операцию с двумя кнопками, которые запускают и останавливают локальную службу:
//Start Service
startService(new Intent(this, MyService.class));
//Stop Service
stopService(new Intent(this, MyService.class));
Я также создал липкую услугу, которая onStartCommand()
начинает регистрировать данные датчиков:
public int onStartCommand(Intent intent, int flags, int startId) {
mSensorManager.registerListener(this, accelerometer,
SensorManager.SENSOR_DELAY_FASTEST);
mSensorManager.registerListener(this, magnetometer,
SensorManager.SENSOR_DELAY_UI);
mSensorManager.registerListener(this, lightSensor,
SensorManager.SENSOR_DELAY_UI);
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
return Service.START_STICKY;
}
AndroidManifest.xml:
<service android:name=".MyService" android:enabled="true" android:process=":HelloSensors_background"/>
Это хорошо работает, однако проблема в том, что когда я убил приложение, которое запустило службу, эта служба перезагружается и теряет все ранее зарегистрированные данные. Что я должен использовать для обеспечения бесперебойной работы и продолжения работы, даже когда приложение будет убито, чтобы не потерять какие-либо зарегистрированные данные?