Jak odpalić kilka serwisów w kolejności takiej ,że dopiero jak pierwszy skończy pracę, to uruchamia się drugi i tak dalej, z praktyki widzę, że one gdy są uruchomione jeden po drugim, to pracują równolegle,
0
0
Możesz wystartować jeden serwis z drugiego serwisu w momencie, gdy pierwszy już skończy swoje obliczenia. W zależności od tego czy rozszerzasz IntentService
czy Service
kod może wyglądać trochę inaczej.
public final class MyService extends Service {
@Override @Nullable
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
doSomeBackgroundWork();
return START_NOT_STICKY;
}
private void doSomeBackgroundWork() {
new Thread(new Runnable() {
@Override
public void run() {
Log.d("MyService", "Work, work...");
stopSelf();
Intent secondService = new Intent(MyService.this, MyService2.class);
startService(secondService);
}
}).start();
}
}
Musisz tylko pamiętać, że może się to nie udać, bo nie ma gwarancji, że serwisy się wykonają (zwłaszcza te background), jeżeli aplikacja jest niewidoczna.