1.1 - Serialização Java

O Java define um framework de serialização por meio da interface java.io.serializable e de um par de tipos de serialização que são java.io.ObjectOutputStream e java.io.ObjectInputStream.

Como a serialização do Java geralmente funciona sem problemas, mesmo programadores experientes podem não conhecer sua complexidade. Saiba+

O Android oferece suporte a serialização Java por meio do tipo Bundle. O tipo Bundle possui dois métodos, putSerializable e getSerializable, que, respectivamente, adicionam e recuperam um Serializable Java em um Bundle.

O código abaixo é um exemplo genérico de uso deste recurso:

public class SampleSerialize extends Activity {
public static final String APP_STATE = "br.aiec";

private static class AppState implements Serializable {
// AQUI DEVE SER REPRESENTADO O ESTADO DO APLICATIVO
}

private AppState applicationState;

/**
* Esse método é chamado quando a Activity é criada
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if(savedInstanceState == null){
applicationState = new AppState();
}else{
applicationState = (AppState)
savedInstanceState.getSerializable(APP_STATE);
}

//RESTANTE DO CODIGO.....
}

/**
* Esse método é chamado pelo Android quando a Activity é pausada.
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable(APP_STATE, applicationState);
}
}

Nesse exemplo genérico, o aplicativo mantém algumas informações globais de estado como um objeto serializable. Quando a Activity do exemplo que está sendo representada pela classe SampleSerialize, é pausada, abrindo espaço na memória para outra Activity, o framework do Android invoca o método de Callback onSaveInstanceState de SampleSerialize para salvar o estado do objeto no Bundle. Quando SampleSerialize é executada novamente, o método onCreate recupera de volta o estado gravado no Bundle.

Esse comportamento se deve ao ciclo de vida de uma Activity que será explicado em todos os seus detalhes na unidade seguinte.

Copyright © 2016 AIEC.