MainService.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package info.knacki.prometheusandroidexporter;
  2. import android.app.Service;
  3. import android.content.Intent;
  4. import android.os.IBinder;
  5. import androidx.annotation.Nullable;
  6. import androidx.work.PeriodicWorkRequest;
  7. import androidx.work.WorkManager;
  8. import java.io.IOException;
  9. import java.util.concurrent.TimeUnit;
  10. import java.util.logging.Level;
  11. import java.util.logging.Logger;
  12. import info.knacki.prometheusandroidexporter.collector.TestCollector;
  13. public class MainService extends Service {
  14. public MainService() {
  15. }
  16. @Override
  17. public void onCreate() {
  18. InitCollectors(CollectorManager.GetInstance());
  19. ScheduleCollection();
  20. try {
  21. HttpService.Register(getApplicationContext());
  22. }
  23. catch (IOException e) {
  24. Logger.getLogger(MainService.class.getName()).log(Level.SEVERE, "Cannot start server: ", e);
  25. }
  26. }
  27. @Nullable
  28. @Override
  29. public IBinder onBind(Intent intent) {
  30. return null;
  31. }
  32. private void InitCollectors(CollectorManager manager) {
  33. manager.RegisterCollector(new TestCollector());
  34. }
  35. private void ScheduleCollection() {
  36. PeriodicWorkRequest job = new PeriodicWorkRequest.Builder(CollectorWorker.class, 15, TimeUnit.MINUTES).build();
  37. WorkManager.getInstance(this).enqueue(job);
  38. }
  39. }