Atenção: esse artigo tem um vídeo complementar. Clique e assista!
AppWidgets são pequenas aplicações que são embutidas na tela principal de aparelhos Android e podem receber atualizações periódicas. Nesse artigo serão explicados os conceitos relacionados a esse tipo de aplicativo através da criação de um AppWidget funcional.
Para que serve:
Os AppWidgets têm como intuito prover informações relevantes aos usuários de telefones Android e facilitar o acesso a funcionalidades do sistema ou de aplicações existentes através da tela principal do aparelho.
Em que situação o tema é útil:
O Android permite a execução de aplicações em segundo plano. Sendo assim, além de prover informações, os AppWidgets servem de canal de comunicação com aplicações e serviços existentes.
Resumo DevMan
Um widget é um componente de uma interface gráfica do usuário (GUI), o que inclui janelas, botões, menus, ícones, barras de rolagem, etc. Um tipo comum de widgets são aqueles da área de trabalho (como os presentes na plataforma Android), pequenos aplicativos que flutuam pela área de trabalho e fornecem funcionalidades específicas ao usuário como previsão do tempo, cotação de moedas, relógio, dentre outras.
Autores: Nelson Glauber de Vasconcelos Leal, Edilson Mendes Bizerra Junior e Breno Augusto de Melo Menezes
O termo widget muitas vezes é utilizado para designar componentes de interface gráfica com o usuário (GUI) como janelas, botões, caixas de texto, menus, ícones, barras de rolagem, etc. Na web, eles são pequenos pedaços de conteúdo dinâmico que se espalham por vários sites, e são usados para mostrar algum tipo de informação específica. Nos computadores pessoais, eles estão na área de trabalho e exibem informações diversas. No Android, esse termo se refere a aplicativos que rodam na tela principal do aparelho, chamada de home screen.
Os widgets têm como intuito informar, entreter e facilitar o acesso do usuário a funcionalidades do sistema ou de aplicações existentes. Com eles, podemos apresentar informações relevantes sem que o usuário tenha que abrir uma aplicação para obtê-la. Condições meteorológicas, valores da bolsa, tradutores, notificadores de e-mails e de redes sociais são bons exemplos de informações que podem ser exibidas pelos widgets.
No Android, eles estão presentes desde a versão 1.5 através do AppWidget framework. Esta API permite que os desenvolvedores criem aplicativos que podem ser arrastados para a home screen de forma que o usuário possa interagir com ele fazendo com que eles se tornem um canal de acesso rápido a uma aplicação. O próprio Android, por padrão, inclui alguns widgets, como podemos observar na Figura 1. Dentre eles o relógio analógico, o controlador do music player, e mais recentemente um aplicativo que dá dicas de como utilizar funcionalidades do aparelho.
Figura 1. Widgets nativos do Android.
Uma vez adicionados na tela principal, eles dispõem de um espaço reservado para exibir seu conteúdo e um mecanismo de atualização automática de conteúdo em intervalos específicos de tempo.
Para adicionar um widget, deve-se tocar e manter o dedo pressionado sobre uma área vazia da home screen, e em seguida, selecionar a opção Widgets. Na lista que será exibida, selecione o widget desejado. Esse processo é apresentado na Figura 2.
Figura 2. Adicionando um Widget à tela principal.
Widget API
Os dois principais elementos envolvidos na criação de um Widget são o AppWidgetProviderInfo e o AppWidgetProvider. O primeiro consiste em um arquivo XML que contém informações sobre o widget, tais como: o layout, dimensão, tempo de atualização, e opcionalmente, uma Activity de configuração que permite modificar as características do widget. Já o segundo é a classe que tratará os eventos e o ciclo de vida do widget. Ela herda de BroadcastReceiver e é notificada toda vez que o widget é atualizado, habilitado, desabilitado e deletado.
Esses dois elementos devem ser declarados no AndroidManifest.xml da aplicação, como pode ser visto na Listagem 1.
Listagem 1. Declarando um Widget no AndroidManifest.
...