2017-05-03 2 views
0

Ich bin sehr neu, so dass diese vielleicht eine wirklich grundlegende Frage auf Android:Update/Neustart Android Service-Einstellungen

ich einen Dienst haben, die beginnt, wenn ein Benutzer eine Taste drücken

Der Dienst eine neue Aufgabe beginnen und Loop es alle N Sekunden. Die Sekunden werden über den Tab Einstellungen in meiner Android App eingestellt.

Im OnStart() Methode im Dienst erhalten die Vorlieben:

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

und die Einstellungen, zum Beispiel:

final Long pollInterval = Long.parseLong(settings.getString("pollInterval", "1000")); 

Die Task Polling auf einer Datenbank für neue Einträge vorhanden ist. Mein Ziel ist es, den Dienst neu zu starten, nachdem ich zum Hauptrahmen zurückgekehrt bin, so dass die onCreate-Methode die neuen Einstellungen erhält oder die Einstellungen in der laufenden Aufgabe aktualisiert, um das Abfrage-Intervall zu ändern.

Ich habe versucht, den Dienst neu zu starten mit:

startService(serviceIntent); 
stopService(serviceIntent); 

Aber aus irgendeinem Grund dies nicht funktioniert.

Vielen Dank im Voraus für die Antworten.

Antwort

0
Use this one to repeat service 



try { 

      //Create a new PendingIntent and add it to the AlarmManager 
      Intent intent = new Intent(this, Service.class); 
      PendingIntent pendingIntent = PendingIntent.getService(this, 
       12345, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
      AlarmManager am = 
       (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
      am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 
        2*60*60,pendingIntent); 

      } catch (Exception e) {} 

Also stop service when your task is completed 
Verwandte Themen