2011-02-17 14 views
6

Większość komponentów systemu Android nie jest bezpieczna dla wątków - przynajmniej takie jest założenie, z którym zwykle pracuję.Czy startServce() można wywołać z dowolnego wątku?

Jednak czy można bezpiecznie wywołać startService() z wątku tła?

natrafiłem na post z Dianne Hackborn który mówi, że jest to bezpieczne, aby zadzwonić sendBroadcast() z dowolnego wątku, więc chcę, aby przypuszczać, że jest to również prawdziwe dla startService() (http://groups.google.com/group/android-developers/msg/38a09b52de93f70a).

Czy każdy, kto ma doświadczenie w dziedzinie framework?

Dzięki!

Odpowiedz

-3

Nie znam teorii, ale uważam, że odpowiedź brzmi "tak" i łatwo ją wypróbować. Tylko pamiętaj, że jak zawsze, jeśli zamierzasz zaktualizować cokolwiek w interfejsie użytkownika, aby umieścić Handler w głównym wątku - a następnie w usłudze, wyślij temu Handlerowi wiadomość zawierającą dane, które mają zostać umieszczone w interfejsie.

+0

DJC, dziękuję za odpowiedź, ale to naprawdę nie rozwiązuje mojego pytania. Odnośnie aktualizacji interfejsu użytkownika z wątku w tle: masz absolutną rację. Ale moje pytanie dotyczy uruchamiania instancji android.app.Service z wątku tła, a nie aktualizacji interfejsu użytkownika z wątku w tle. – skyler

+0

Właściwie to zrobiłem :) W twoim wątku, wykonaj startService (new Intent (this, MyService.class)); i zobacz, co się stanie. Proste. – DJC

+1

Może to działać 99,99% czasu, ale nie oznacza to, że jest bezpieczny dla wątków. Rzucę okiem na źródło Froyo i zobaczę, co mogę znaleźć. – skyler

Powiązane problemy