Jest jeden problem - moja główna działalność rozpoczyna usługę i jest wtedy zamknięta. Gdy aplikacja zostanie uruchomiona następnym razem, aplikacja powinna uzyskać odwołanie do tej usługi i ją zatrzymać. Ale nie wiem, jak mogę uzyskać odniesienie do działającej usługi. Proszę, mam nadzieję, że możesz mi pomóc. Dziękuję Ci.Jak uzyskać referencję do bieżącej usługi?
8
A
Odpowiedz
0
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("your.service.classname".equals(service.service.getClassName())) {
return false;
}
}
return true;
}
if(isMyServiceRunning()) {
stopService(new Intent(ServiceTest.this,MailService.class));
}
11
Ta odpowiedź jest oparta na numerze answer by @DawidSajdak. Jego kod jest w większości poprawny, ale zmienił instrukcje return
, więc daje odwrotność zamierzonego wyniku. Prawidłowy kod powinien być:
private boolean isMyServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("your.service.classname".equals(service.service.getClassName())) {
return true; // Package name matches, our service is running
}
}
return false; // No matching package name found => Our service is not running
}
if(isMyServiceRunning()) {
stopService(new Intent(ServiceTest.this,MailService.class));
}
Powiązane problemy
- 1. Jak uzyskać bieżącej lokalizacji urządzeniu
- 2. Jak uzyskać numer bieżącej linii?
- 3. Jak uzyskać nazwę bieżącej funkcji?
- 4. Jak uzyskać dane z usługi do działania
- 5. Jak uzyskać pogoda w bieżącej lokalizacji
- 6. Jak uzyskać prędkość bieżącej przepustowości (pobierania)?
- 7. Jak uzyskać nazwę bieżącej strony PHP
- 8. Jak uzyskać PropertyDescriptor dla bieżącej właściwości?
- 9. Jak uzyskać referencję komponentu potomnego w trybie natywnym?
- 10. Jak uzyskać dostęp do bieżącej lokalizacji w reduktorze (redux-routerze)?
- 11. Boost.Python - jak wrócić przez referencję?
- 12. Jak dodać referencję projektu do projektu ASP.NET Core 1.0 MVC
- 13. uzyskać SharedPreferences od usługi
- 14. googleMap.getMyLocation(); nie mogę uzyskać bieżącej lokalizacji
- 15. Ogórek/Kapibara - jak uzyskać hosta i port bieżącej realizacji
- 16. Jak uzyskać długość bieżącej grupy w grupie data.table?
- 17. Jak mogę uzyskać nazwę usługi z kodu usługi chmury Azure?
- 18. Jak dołączyć referencję dll System.Web.Http.Cors do .Net Web API
- 19. Jak zwrócić referencję do wycinka tablicy w Chapel?
- 20. Jak uzyskać dostęp do Kibana z usługi Amazon elasticsearch?
- 21. Jak uzyskać dostęp do ApplicationContext z usługi WWW JAX-WS?
- 22. Jak uzyskać dostęp do usługi sieciowej z przeciążonymi metodami
- 23. Jak uzyskać dostęp do ServletContext z usługi WWW JAX-WS?
- 24. Jak uzyskać dostęp do usługi WCF w aplikacji ASP.Net MVC?
- 25. Jak programowo uzyskać wystąpienie usługi Grails?
- 26. Jak uzyskać nazwę bieżącej instancji z T-SQL
- 27. Jak uzyskać adres URL bieżącej strony w PHP
- 28. Jak uzyskać nazwę bieżącej właściwości za pomocą odbicia?
- 29. Jak przekazać referencję za pośrednictwem pakietu parametrów?
- 30. Jak uzyskać aktualną lokalizację w GoogleMap przy użyciu usługi FusedLocationProviderClient
, ale jak mogę zatrzymać usługę za pomocą Twojego przykładu? – user1166635
@ user1166635 bardzo prosto, sprawdź moją edycję. –
Uhm .. to dość niepotrzebne. Po prostu wywołaj 'stopService' bez względu na to, czy twoja' usługa' działa, czy nie - nie ma żadnej szkody, jeśli nie jest - 'stopService' zwróci tylko' false'. – Jens