Piszę aplikację w android studio i chcę przekazać dane za pomocą Intent.putExtra(). Aby to zrobić, potrzebuję obiektu do zaimplementowania Parcelable. Problem polega na tym, że mój obiekt ma zmienne, takie jak Socket lub DataOutputStream. Aby zaimplementować Parcelable, muszę, aby zmienne były również parcelable.
Moje pytanie brzmi: czy Socket i DataOutputStream/DataInputStream są parcelable? A jeśli nie, jak mogę przekazać je między dwoma czynnościami w android studio?
1 odpowiedź
Nie, nie możesz tego zrobić. Argumenty, które umieszczasz w Intent
jako „dodatki”, muszą być możliwe do serializacji do strumienia bajtów i przechowywane trwale poza aplikacją. Android robi to na wypadek, gdyby musiał zabić proces systemu operacyjnego hostujący twoją aplikację. Gdy Android utworzy nowy proces systemu operacyjnego, przywróci twoje komponenty i przekaże Intent
z tymi dodatkami.
Z tego powodu nie możesz przejść przez takie gniazda lub strumienie.
Po prostu przechowaj odwołanie do gniazda lub strumienia w zmiennej static
, która może być „współdzielona” bezpośrednio przez wiele komponentów, takich jak „zmienne globalne”.
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.