Używam usługi AIDL w mojej aplikacji. Chcę również uruchomić inny proces, więc używam android:process=":remote"
w deklaracji usługi w manifeście.używając android: process = ": remote" odtwarza obiekt aplikacji Android
Mój problem polega na tym, że gdy rozpoczyna się proces :remote
, najwyraźniej odtwarza obiekt Application
.
Naprawdę nie rozumiem tego, ponieważ nadpisuję obiekt aplikacji i wywołuje wiele rzeczy klienta w metodzie onCreate()
. Jednak chcę, aby kod usługi był umieszczony w tym samym pakiecie APK z klientem.
Czy mogę to osiągnąć? Czy obiekt Application
jest ponownie tworzony po rozpoczęciu nowego procesu?
Doceń swoją pomoc. Dzięki!
to dlaczego dla każdego komponentu można ustawić właściwość android: process = ": remote"? Chodzi mi o to, czy nie można uruchamiać komponentów w różnych procesach? Tak naprawdę potrzebuję tej elastyczności w przypadku awarii usługi zdalnej, aby nie zawieść mojego klienta. –
@ user1986565: "Tak naprawdę potrzebuję tej elastyczności w przypadku, gdy zdalna usługa ulegnie awarii, więc nie zawiedzie też mojego klienta" - utalentowani programiści używają innych technik, takich jak niezamknięte procedury obsługi wyjątków, aby rozwiązać ten problem, zamiast marnować procesory swoich użytkowników , Pamięć RAM i bateria. – CommonsWare
czy zdalna usługa marnuje więcej pamięci RAM procesora i baterii niż lokalna? Mam na myśli - wykonuje ten sam kod. Więc wykorzystanie procesora i baterii jest takie samo. Ma własną kupę, ale kupa rośnie, więc nie powinna być zbyt marnotrawstwem. Czy się mylę? –