COMPUTAÇÃO MÓVEL Prof.: Jean Carlo Mendes [email protected] [email protected] http://www.mendesnet.com.br Componentes - Android • Intent • Activity • Fragments • Loaders • Tasks and Back Stack • Services • Content Providers Intents • Intent é um objeto de “mensagens” que usamos para requisitar a ação de um componente (Activity, Service, etc) da aplicação Intents Explícitos • Especifica o componente que vai ser iniciado informando o nome (identificador) dele • Usado para iniciar componentes dentro do próprio aplicativo Intents Implicitos • Não especifica o componente que vai ser iniciado. Ao invés disto faz uma declaração de ação genérica • Tipicamente usado para iniciar apps de terceiros Activities • Um Activity é um componente da aplicação que fornece a tela com a qual os usuários podem interagir. • Para cada Activity é fornecida uma tela onde se pode desenhar a interface gráfica Activities • Geralmente se tem uma Activity especificada como “Main”. • A Activity “Main” é apresentada ao usuário quando o aplicativo é executado Activities • Quando uma nova Activity é iniciada, a antiga é parada (permacendo com seu estado em uma Pilha de Activities) Activities – ciclo de vida • Toda activity possui um ciclo de vida que se inicia no momento de sua criação e termina quando ela não é mais necessário (por exemplo quando outra Activity toma o seu lugar) Diagrama Activities – ciclo de vida • onCreate() é a primeira função a ser executada em uma Activity. Geralmente é a responsável por carregar os layouts XML e realizar as operações de inicialização. • É executada apenas uma vez Activities – ciclo de vida • onStart() Chamada imediatamente após a onCreate() e também quando uma Activity que estava em background volta a ter foco • onResume() Assim como onStart() é chamada na inicialização da Activity e também quando ela volta a ter foco. • Diferença: • onStart() é chamado quando a activity não estava mais visível e volta a ter foco • onResume() é chamado na retomadas de foco Activities – ciclo de vida • onPause() É a primeira função a ser invocada quando a Activity perde o foco (acontece quando uma outra Activity é iniciada) • onStop() Só é chamada quando a Activity fica completamente encoberta por outra Activity Activities – ciclo de vida • onDestroy() A última função a ser executada. Depois dela a Activity é considerada “morta”. Neste caso ela não pode ser relançada. Se o usuário voltar a requisitar essa Activity, um novo objeto será construído. • onRestart() Chamada imediatamente antes de onStart(), quando uma Activity volta a ter foco despois de ficar em background Criando uma Activity • Para criar uma Activity nós devemos criar uma sublcasse da Classe Activity • Nesta subclasses devemos implementar métodos de “callback” que serão chamados pelo sistema nas transições de estado da Activity (create, stop, pause, resume, destroy) Callbacks importantes • onCreate() : Obrigatoriamente deve ser implementado. É chamado pelo sistema na criação da Activity. Dentro do app deve ser usado para inicializar componentes essenciais. É onde se declara o método setContentView() que define o layout da Activity para interface com o usuário Callbacks importantes • onPause() : Invocado pelo sistema como o primeiro indicativo de que o usuário está deixando a Activity. • Neste call-back são implementados os métodos de commit das alterações Fragments • Um Fragment representa o comportamento ou uma parte da interface com usuário da Activity • Uma Activity pode ter vários fragmentos • Fragmento é um “módulo” da activity que contem seu próprio ciclo de vida Fragments • Deve estar sempre incorporado à Activity • Segue o ciclo de vida do host (Activity). Se activity para, os fragmentos dela também são parados... Fragments – exemplo de design Criando Fragments • Para criar um Fragment devemos criar uma subclasse da Classe Fragment • Callbacks importantes • onCreate() • onCreateView() • onPause() Fragments – onCreate() • Chamado pelo sistema quando o Fragment é criado. Neste método fazemos a inicialização dos componentes que queremos manter o estado durante o ciclo de vida do fragmento Fragments – onCreateView() • Chamado pelo sistema quando o Fragment for “desenhado” na interface pela primeira vez • Este método retorna uma View que será a “raiz” do Fragment (retorna null se o fragment não possui UI) Fragments – onPause() • Chamado pelo sistema quando o usuário está saindo do Fragment. • Geralmente é onde as alterações são processadas (o usuário pode não voltar mais ao Fragment) Outras sublclasses para Fragments... • DialogFragment: Mostra uma caixa flutuante. Útil para exibir mensangens • ListFragment: Mostra uma lista de itens e provê métodos para manipular listas • PreferenceFragment: Mostra uma hierarquia de preferencias. Útil para construir telas de configuração