2016-09-07 2 views
2

Ich habe einen Dienst in einer Aktivität gestartet. Wenn ich die Aktivität schließe, wird der Aktivitätsdienst ebenfalls gestoppt.Wie Neustart des Dienstes in Android?

Gibt es eine Möglichkeit, es automatisch neu zu starten?

+0

* "Wenn ich die Aktivität erzwinge" * ... wie bewerkstelligen Sie das genau? – Shaishav

+1

Ja, du kannst. Überprüfen Sie dies: http://StackOverflow.com/Questions/15758980/android-Service-Need-To-Run-AlwaysNe-Pause-Or-Stop/15775964#15775964 Sie müssen nicht die Benachrichtigung Teil –

+0

hängt davon ab wenn Sie es * automatisch * neu starten wollen. –

Antwort

1

Wenn Sie möchten, dass Ihr Dienst im Hintergrund ausgeführt wird, ohne ihn zu stoppen, dann starten Sie Ihren Dienst als sticky.

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    /* your code goes here */ 
    return START_STICKY; 
} 
+0

basierend auf meiner eigenen Erfahrung, START_STICKY nicht garantieren, dass der Dienst automatisch neu gestartet wird. Mein Fall ist, wenn der Benutzer auf dem Gerät auf die Home-Taste klickt. Dann nutzt der Nutzer andere Apps wie Facebook, WhatsApp für eine Minute. Wenn der Benutzer die App öffnet, ist der Dienst bereits beendet, obwohl der Dienst bereits START_STICKY verwendet hat – Dika

0
private void restartService() { 
    Intent restartIntent = new Intent(this, ScreenLockService.class); 
    PendingIntent restartServicePI = PendingIntent.getService(getApplicationContext(), 1, restartIntent, PendingIntent.FLAG_ONE_SHOT); 
    AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); 
    alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePI); 
} 
0

dies das schlimmste Problem ist, was auch immer Sie tun .. Sie Service nie Neustart, bis Sie Ihre Anwendung öffnen. aber in API 21 Android-Entwickler Job Schedular hinzugefügt, um Hintergrunddienste zu pflegen. Sie können dies verwenden, um Ihre Dienste in Bezug auf Zeit und Internetkonnektivität usw. zu planen.

für weitere Informationen können Sie diese tutorial verweisen. Gute Kodierung.

Verwandte Themen