Załóżmy, że planuję użyć jednej executorservice w całej mojej aplikacji, do której wysyłam nowe runnable lub callable's do wykonania/przesłania, i wycofuję się zaraz po tym, jak to zrobię . Chcę tylko rzucić moje "zadania" do executorservice i pozwolić mu je obsłużyć i wykonać je, podając jego zasoby (ile wątków ma dostępnych i ilu może utworzyć, jeśli to konieczne, a następnie odpowiednio je obsadzić).Kiedy należy wyłączyć executorservice w aplikacji Android
ze swojego doświadczenia przy użyciu ExecutorService w aplikacji Android, a także biorąc pod uwagę zmiany stanu aplikacji, jeśli nie chcą ciągle zamknięcie i ponowne utworzenie executorservice w ten sposób:
executor = Executors.newCachedThreadPool();
executor.submit(some Runnable);
executor.shutdown();
, o której godzinie i gdzie chciałbyś polecić zamknięcie usługi, a następnie ją przywrócić, aby zapobiec niektórym wyciekom lub niektórym nieprzewidzianym konsekwencjom?
Ja przeważnie nawiązujący do:
1) APP Zamknięcia przy tylnej przycisku na ostatniej aktywności w backstack (Aplikacja korzysta z wielu działań) 2) Zastosowanie dzieje się w tle (na każdy z tych rodzajów działalności) 3) Aplikacja z powrotem na pierwszy plan (w dowolnej z tych czynności)
Ktoś, kto ma kilka dobrych wskazówek dotyczących wyłączania pojedynczej (lub zamkniętej) usługi ExecutorService, która została uruchomiona na początku aplikacji? Jeśli usługa ExecutorService nie zostanie zamknięta, nie będzie ona zbiorem śmieci, a w efekcie aplikacja nie zostanie zebrana w postaci śmieci (jeśli zadania wykonywane przez usługę executora zawierają pewne odniesienia do działania, lub inny kluczowy obiekt), nawet jeśli są zamknięte. Czy istnieje jakiś sposób łaski to zrobić? Do tej pory nazywałam shutdown za każdym razem, gdy coś przesłałem, iw efekcie odtworzyłem ExecutorService raz za razem.To nie jest dobre rozwiązanie w moich oczach ... – Lucas