Monteiro João Bosco - Google Android: crie aplicações para celulares e tablets стр 12.

Шрифт
Фон

Em seguida, o Android invoca os métodos onStart e logo após o onResume.

A Activity torna-se visível para o usuário no estado Started e assim permanece até os métodos onPause (visível parcialmente) ou onDestroy serem chamados.

Quando a Activity está no estado Resumed dizemos que ela está no foreground

e pode realizar interação com o usuário.

A Activity muda para o estado Paused quando for parcialmente encoberta

48

Casa do Código

Capítulo 2. Entenda o funcionamento do Android

por outra Activity, que pode não ocupar toda a tela ou ser transparente. Se o usuário sair da aplicação ou iniciar outra atividade que encubra totalmente a que está sendo executada, então o método onStop é invocado e a Activity vai para

o background. Mesmo não sendo mais visível pelo usuário, a Activity conti-

nua instanciada e com seu estado interno inalterado, ou seja, da forma como estava quando em execução.

Quando uma Activity está nos estados de Paused

ou Stopped, o sistema

operacional pode removê-la da memória, invocando o seu método finish ou en-

cerrando arbitrariamente o seu processo. Nestas condições, o método onDestroy é disparado. Após destruída, se a Activity for aberta novamente, ela será recriada.

Podemos sobrescrever esses métodos para acrescentar ações que devem ser rea-

lizadas em determinado estágio do ciclo de vida. Por exemplo, quando a Activity não estiver mais visível, podemos liberar recursos tais como uma conexão de rede, ou ainda, salvar os dados digitados pelo usuário no método onPause e encerrar as threads em execução no método onDestroy. O código a seguir mostra os métodos

que podemos sobrescrever:

public class MinhaActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// A activity está sendo criada

}

@Override

protected void onStart() {

super.onStart();

// A activity está prestes a se tornar visível

}

@Override

protected void onResume() {

super.onResume();

// A activity está visível

}

@Override

protected void onPause() {

super.onPause();

/* Outra activity está recebendo o foco. Esta activity

ficará pausada */

}

49

2.7. Layouts, Widgets e Temas

Casa do Código

@Override

protected void onStop() {

super.onStop();

// A activity não está mais visível mas permanece em memória

}

@Override

protected void onDestroy() {

super.onDestroy();

// A activity está prestes a ser destruída (removida da memória)

}

}

Lembre-se sempre de invocar a implementação padrão do método que está

sendo sobrescrito. Por exemplo, se estiver sobrescrevendo o método onStop, então invoque antes o método super.onStop().

2.7

Layouts, Widgets e Temas

Sem dúvida uma interface gráfica com boa usabilidade e que provê uma excelente experiência de uso, assim como funcionalidades bem implementadas, são fatores importante para o sucesso de uma aplicação mobile. A plataforma Android nos oferece um bom conjunto de componentes visuais, os chamados widgets, bem como

opções de layout variadas para a criação da interface com o usuário.

O elemento fundamental de uma interface gráfica na plataforma Android é a

View. A partir dela é que são derivados todos os demais elementos como botões, imagens, checkboxes, campos para entrada e exibição de textos e também widgets mais complexos como seletores de data, barras de progresso e de pesquisa e até mesmo um widget para exibir páginas web, o WebView. A imagem abaixo mostra alguns deles:

Figura 2.7: Alguns widgets disponíveis

50

Casa do Código

Capítulo 2. Entenda o funcionamento do Android

Outra classe essencial é a ViewGroup, que tem como característica especial a

possibilidade de conter outras Views e é a base para todas as classes que constituem layouts. O diagrama da figura 2.8 mostra a hierarquia desses elementos.

Figura 2.8: Hierarquia de Views

Outro recurso interessante disponibilizado pelo Android é a criação de estilos e temas para personalizar a sua aplicação. Se você já trabalhou com folhas de estilo CSS e design para web perceberá a similaridade entre eles. Para definir um estilo, basta criar um XML em res/values/ definindo as propriedades desejadas, como

no exemplo abaixo que define a cor do texto e o tipo de fonte:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="TitleFont"

parent="@android:style/TextAppearance.Large">

<item name="android:layout_width">fill_parent</item>

<item name="android:layout_height">wrap_content</item>

<item name="android:textColor">#FFBA00</item>

<item name="android:typeface">monospace</item>

</style>

</resources>

Há ainda a possibilidade de derivar estilos existentes. Na linha 3, fazemos isto informando qual é o estilo-pai. Para aplicar o estilo em um TextView por exemplo, basta referenciar o estilo dessa maneira:

<TextView style="@style/TitleFont" android:text="@string/titulo" /> 51

2.8. Conclusão

Casa do Código

Como é de se imaginar, os temas são conjuntos de estilos

que podem ser apli-

cados em uma ou em todas as activities da aplicação. Para experimentar esse recurso, no arquivo AndroidManifest.xml da nossa aplicação de exemplo, pode-

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке