service-uruchamianie jeden pop drugim, nie jednocześnie

0

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1