Członek : Login |Rejestracja |Wyślij pytanie
Szukaj
sieć komputerowa - elektroniczny cyfrowy - naturalnie - historia - życie - gra - Sport - figura - rozrywka - hobby rozrywka - Kultura i Sztuka - społeczność - Nauka Edukacja - Healthcare - Ekonomii i Zarządzania - rolnictwo - maszyny - religia - wojskowy - emocja - region - Inne kategorie -
Intencją przeszedł wiązki obiekty, a dlaczego chcesz serializable
Gość | sieć komputerowa 2017-07-07
[Wyślij pytanie ]
Muszę odpowiedzieć - Gość | Login

Obraz :
Typ :|jpg|gif|jpeg|png| , Bajt <1024KB
| Sprawdź kod :
Wszystko odpowiedzi - 1
Gość - odpowiedzi 2017-07-08
Książka mówi zamiar być przekazywane wiązki obiektów Podczas skoku, musimy wdrożyć serializable, dlaczego tak jest?

Zastosowanie zamiar transmisji danych docelowych w różnych składników jest bardzo powszechne. Poniżej opisane są dwie metody, za pomocą przechodzącej Intent obiektu.
1, realizuje Serializable
2, w celu uzyskania Parcelable interfejsu
 
Dlaczego warto serializacji obiektu?
  1, trwałe celem przechowywania bagażu docelowa sekwencja bajtów do lokalnego pliku;
I Nbsp, 2, stosowane sekwencyjnego wykonania przedmiotu przesuwających się przedmiotów w sieci;
I Nbsp, 3, przechodzą przez przedmioty pomiędzy procesami w odcinkach obiektu.
 
1, realizuje Serializable
        Serializable ma wpływu na obiekt, do którego dane strumienia bajtów, celem ponownego generowania w razie potrzeby, głównym zastosowaniem jest wykorzystanie zewnętrznego urządzenia pamięci masowej, aby zachować stan obiektu i transmitowanego na obiektach sieciowych.
        narzędzia i nbsp; Serializable działanie interfejs jest trafienie do znacznika obiektu, system automatycznie odcinkach.
 
        Przypadek 1:
I Nbsp: 1) User.java     (narzędzi i nbsp; Serializable  )
I Nbsp 2) MainActivity.java    
          użytkownika   użytkownika i nbsp =   New i nbsp; użytkownika ();
          Intent-nbsp; intencją i nbsp =   New i nbsp; zamiar (to Second.class);    
          intent.putExtra (cali do użytkownika i Quot ;, użytkownika);
I Nbsp 3) Second.java
        () getIntent;   Intent-nbsp; intencją i nbsp =  
          użytkownika   użytkownika i nbsp =   intent.getSerializableExtra (cali do użytkownika cali do);
 
2, w celu uzyskania Parcelable interfejsu
          1) Dlaczego warto wdrożyć Parfcelable interfejs do realizacji przedmiotu przeszedł w intencyjnego?
            przy użyciu pamięci, Parcelable niż Serializable wydajności zaleca się, aby użyć klasy Parcelable.
    ;; nbsp &;       b Serializable w odstępie czasu będzie produkować dużą liczbę zmiennych czasowych, co powoduje częste GC.
 
          Uwaga: Parcelable nie mogą być stosowane w przypadku danych zapisanych na dysku, a także Parcelable nie można zapisać dane pod uporczywego przypadku zmian w świecie zewnętrznym. Dlatego w tym przypadku zaleca się, aby użyć Serializable
 
          2) i nbsp; nowy mechanizm serializacji Android
          Androida do pamięci o ograniczonej urządzeniu przenośnym tak, wyższych wymagań eksploatacyjnych, urządzenie wykorzystuje nową Androida IPC (Inter-Process Communication) mechanizmu wymaga lepszą wydajność sposób przenoszenia obiektu. Klasa paczka jest tak skonstruowany, że pozycjonowanie jest lekki i wydajny mechanizm serializacji obiektu deserializacji.
          działki serializacji i deserializacji odczytać pamięć jest pełna, więc pamięć zewnętrzna jest znacznie wyższa wydajność niż przy użyciu języka Java serializacji.
 
Klasa działki
         , w warunkach stosowania, dane są przekazywane pomiędzy sceną Klasa aktywności działki jest często używany. Intencją przesyłania danych z użyciem czasu obiektów złożonych mogą przechodzić pomiędzy mechanizmem przez aktywności Parcelable.
         , mechanizm działki: w istocie jako Serialize go. Działki tylko w odcinkach obiektu w pamięci rzeczywistej i deserializacji zakończeniu ciągłego wykorzystania przestrzeni pamięci, a tym samym bardziej efektywne.
 
przypadek:
        Etap 1: własne klasy jednostka, która realizuje Interfejs Parcelable przesłonić jego dwóch metod.
        Etap 2: Klasa jednostka musi być dodane do stałego twórca (nazwa przypadku nie czynią inne), stałej musi być realizowane Parcelable wewnętrzny interfejs: Parcelable.Creator i realizować dwa interfejsu metody.
        User.java następujące:
kod Java     pakiet   com.example_intent_object;         import   android.os.Parcel;     import   android.os.Parcelable;         publicznego   klasa   użytkownika   narzędzia   Parcelable   {            publicznego   String   nazwa;             publicznego   int   wiek;       ;           //   należy utworzyć stałą CREATOR nazwie   ;.           publicznego   static   ostateczna   Parcelable.Creator < użytkownika >   ; Twórca i nbsp =   New i nbsp; Parcelable.Twórca i LT; użytkownika > () nbsp {                    @ zastępuj                     publicznego i nbsp; użytkownika   createFromParcel (Paczka   źródła) i nbsp {                    ;;       &nBSP powrotu i nbsp, nowe i nbsp; użytkownika (źródła);                    }                     // zastąpić metody createFromParcel tworzenie i powrót,A uzyskane dane na temat obiektu użytkownika i nbsp;                   @ zastępuj                     publicznego i nbsp; użytkownik [] nbsp; newArray (Int i nbsp; wielkości) i nbsp {                            powrotu i nbsp, nowe i nbsp; user [rozmiar] ;                    }            };                 @ Zastąpienie         nbsp &;   publicznego i nbsp STRING nbsp; toString () nbsp {                    powrotu i nbsp; nazwa, nbsp i nBSP; &Quot ;: cali do nbsp & = nBSP, wiek; &nBSP; &nBSP; &nBSP; &nBSP; &nBSP; &nBSP;} &nBSP;               // i nbsp, bez argumentu konstruktor Sposób sterowania zwany gdy na przykład na zewnątrz, aby utworzyć klasy             publicznego i nbsp; user () nbsp;       {          ;;  };           // i nbsp, o strukturze referencyjnego Metoda jest prywatny,Sposób według niniejszego konfiguracji jest tylko klasy połączeń createFromParcel             prywatne i nbsp; użytkownika (Paczka   źródła) i nbsp {                  ;   nazwa, nbsp =   źródło,readString ();                 () source.readInt ;;    , wiek i nbsp =              }                 @ zastępuj     ;;         publicznego i nbsp; Int i nbsp; describeContents () nbsp {              ; nbsp &;     powrotu i nbsp; 0;            }                 // i nbsp; atrybut przechowywać obiekt do odbiorców w dest             @ zastępuj             publicznego   void   writeToParcel (działki   dest,   int   flags)   {  ;                   dest.writeString (nazwa);                     dest.writeInt ( wiek);            }             // gettera pominięty / ustawiająca i nbsp;}    .
   
       , inny kod:
kod Java i nbsp;   Bundle i nbsp, pakiet i nbsp =   New i nbsp; wiązkę ();                                 ;             bundle.putParcelable (cali do użytkownika i Quot ;, i nbsp; użytkownika);                         ;                     Intent-nbsp; intencją i nbsp =   New i nbsp; zamiar (MainActivity.this                                                             SecondActivity.class) ; &nBSP;                                           intent.putExtras (wiązka );    
 
kod Java i nbsp;   Intent-nbsp; intencją i nbsp =   getIntent ();   ;;   Bundle i nbsp, pieczywa i nbsp =     ;;     ;;     ;;       intent.getExtras ();                     użytkownika   użytkownika i nbsp =   bun.getParcelable (cali do użytkownika cali do);               ;       System.out.println (użytkownik);    
 

Prawo autorskie @2017 GQAQA P & A