Jestem nowym użytkownikiem Androida. Zajmuję się tworzeniem aplikacji rejestrującej dane z czujników. Mam działanie z dwoma przyciskami. Kiedy użytkownik naciśnie przycisk Start, chcę uruchomić usługę i zarejestrować dane czujnika, dopóki użytkownik nie naciśnie przycisku zatrzymania. Nie jestem pewien, jakiego rodzaju usługi chcę użyć. Czytałem o lokalnych i zdalnych usługach, ale nie całkiem zrozumiałem różnicę.Ponowna instalacja usługi Android po zabiciu aplikacji
Co próbowałem dotąd:
Założyłem działalność z dwoma przyciskami, które uruchamiać i zatrzymywać usługi lokalne:
//Start Service
startService(new Intent(this, MyService.class));
//Stop Service
stopService(new Intent(this, MyService.class));
stworzyłem również lepką usługę, która onStartCommand()
zaczynający się zalogować czujnik dane:
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"/>
Działa dobrze, jednak problem polega na tym, że po uruchomieniu usługi kill the application usługa ta jest ponownie uruchamiana i traci wszystkie wcześniej zarejestrowane dane. Co powinienem użyć, aby mieć usługę, która działa płynnie i nadal działać, nawet jeśli aplikacja zostanie zabita, aby nie utracić żadnych zarejestrowanych danych?
Co masz na myśli przez zabicie aplikacji? Jeśli użytkownik przejdzie do strony ustawień aplikacji i wybierze opcję "Wymuś zatrzymanie", usługa zostanie zatrzymana, nic nie da się z tym zrobić. – Premsuraj
[To] (http://www.youtube.com/watch?v=XVyXCrM-3zw) jest tym, co rozumiem przez zabicie aplikacji – user1135357
Po drugie pytanie, co masz na myśli mówiąc "zabić aplikację"? Chciałbym jednak zaznaczyć, że usługa _can_ może być oddzielona od aplikacji w taki sposób, że jeśli użytkownik zatrzyma funkcję _app_, usługa_usługa_ będzie mogła nadal działać. –