Classe Intent e o Conceito de Pilha em Android

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Android /Classe Intent e o Conceito de Pilha em Android

Classe Intent e o Conceito de Pilha em Android

Vinícius Thiengo
(10538) (14)
Go-ahead
"O método consciente de tentativa e erro é mais bem-sucedido que o planejamento de um gênio isolado."
Peter Skillman
Prototipagem Android
Capa do curso Prototipagem Profissional de Aplicativos
TítuloAndroid: Prototipagem Profissional de Aplicativos
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
Acessar Curso
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Lendo
TítuloManual de DevOps: como obter agilidade, confiabilidade e segurança em organizações tecnológicas
CategoriaEngenharia de Software
Autor(es)Gene Kim, Jez Humble, John Willis, Patrick Debois
EditoraAlta Books
Edição
Ano2018
Páginas464
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido

Tudo bem?

No vídeo acima é apresentado o que é e qual a importância da classe Intent (intenção) em projetos Android.

No vídeo também é discutido o conceito de pilha de atividades no Android, ponto importante mesmo para um desenvolvedor iniciante. É preciso dominar o conceito de pilha para conseguir, por exemplo, gerenciar quais atividades abrir, ou recuperar, e quando.

Alias, quando no estudo de Intents Android é importante notar que a entidade Intent é uma daquelas entidades que qualquer desenvolvedor Android, independente do nível, tem que dominar.

É com uma Intent, por exemplo, que um aplicativo consegue de maneira simples e completa compartilhar algum conteúdo com inúmeros outros apps Android instalados no aparelho do usuário.

Ou seja, apesar da ênfase dada anteriormente ao conceito de pilha de atividades e gerência de pilha por meio de intenções, a entidade Intent é ainda mais "poderosa".

O vídeo, apesar de ser um pouco longo, tem o essencial para você desenvolvedor mobile, ou aspirante a um, entender como realmente utilizar uma Intent e, obviamente, já iniciar os trabalhos com intenções em seus próprios projetos de aplicativos Android.

Note que junto ao estudo e entendimento de Intents no Android é essencial que você também domine os filtros de intenções. IntentFilter é uma outra entidade que amplia os trabalhos possíveis com intenções Android.

Antes de finalizar, a seguir deixo links de alguns conteúdos do Blog, contendo vídeos, que lhe colocarão em dia com o que há de atual no desenvolvimento de apps deste sistema operacional mobile do Google:

E caso você tenha o desejo de aprender a desenvolver aplicativos Android, ou evoluir nesta área, também com o conteúdo gratuito do Blog, então não deixe de acessar a lista de estudos exclusiva em: Estudando Android - Lista de Conteúdos do Blog.

E... não esqueça de se inscrever 📫na lista de e-mails do Blog para receber os conteúdos exclusivos Android em primeira mão.

Se inscreva também no canal do Blog no YouTube para acompanhar as últimas novidades.

Surgindo dúvidas ou dicas, pode enviar abaixo na área de comentários que logo eu lhe retorno.

Obs. : o link para download do projeto apresentado em vídeo se encontra logo abaixo no artigo, na seção "Download".

Abraço.

Eclipse IDE vs Android Studio IDE

Apesar de o conteúdo da vídeo aula acima estar utilizando o Eclipse IDE 😱, tudo que é apresentado, tanto a parte teórica quanto a parte prática, é ainda válido nos dias de hoje com o desenvolvimento Android utilizando o Android Studio 😁.

Ou seja, independente da linguagem oficial (Java, Kotlin, C ou C++), IDE ou framework que você esteja utilizando, o conteúdo acima é ainda muito útil.

AndroidX

Apesar do conteúdo sobre Intent ainda estar atual e ser muito importante para qualquer nível de desenvolvedor Android.

Apesar disso eu também recomendo, assim que finalizado o projeto em sua própria instalação de IDE, que você o migre para o AndroidX.

Algo que pode ser feito com poucos cliques, como apresentado no tutorial a seguir: Migrar para o AndroidX.

Fontes

Intent - documentação oficial Android

Intents e filtros de intents

Iniciar outra atividade

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

Criando Uma APP de Somar em AndroidCriando Uma APP de Somar em AndroidAndroid
Entendendo a Classe R.java do AndroidEntendendo a Classe R.java do AndroidAndroid
APP Android Thiengo [Calopsita] Está na Play StoreAPP Android Thiengo [Calopsita] Está na Play StoreAndroid
Conhecendo o Arquivo AndroidManifest.xmlConhecendo o Arquivo AndroidManifest.xmlAndroid

Compartilhar

Comentários Facebook

Comentários Blog (14)

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...
Marcela Oliveira (1) (0)
06/02/2017
Boa tarde!
Esse setData , está dando erro, não aparece automaticamente e fiz manualmente também e continua o erro.
o que faço?
Responder
Vinícius Thiengo (0) (0)
06/02/2017
Marcela, tudo bem?

O setData() aceita somente dados do tipo URI. Veja se o putExtra() serve para ti. Trabalho melhor com o putExtra() no artigo do link a seguir.

http://www.thiengo.com.br/parcelable-no-android-entendendo-e-utilizando

Pode assistir mesmo se estiver apenas começando do Android. Abraço.
Responder
Carlos (1) (1)
22/01/2017
Vinicius, boa noite,

Antes de mais nada, agradeço pela resposta e pela ajuda que o sr. está fazendo.

Não sei o que estou fazendo de errado, modifiquei o xml do AndroidManifest e aparece erro, inseri o nome da nova activity a renomeei a antiga activity no código que foi passado.

Nos arquivos java, criei uma nova activity de exemplo e usei o código que aparece em seu vídeo e está tudo ok, mas o erro aparece no AndroidManifest.

Se eu passar os códigos do app de estudo que fiz, baseado no projeto do livro do prof.º Fernado Anselmo,  o sr. pode verificar onde está o erro?

O meu e-mail é:

macedo_car26@hotmail.com

Mais uma vez agradeço pela ajuda e desculpe pelo meu incômodo. Essa minha dúvida vai me ajudar em meus estudos para realizar alguns app's android.

Grato
Responder
Vinícius Thiengo (0) (0)
23/01/2017
Carlos, respondido em comentário abaixo. Abraço.
Responder
Carlos (1) (0)
19/01/2017
Ótimo vídeo! Assisti pela primeira vez no youtube e coloquei o seu blog em meus favoritos..

Estou com uma dúvida. É possível inserir uma nova tela em um app já pronto e fazer com que essa nova tela apareça primeiro? Não seria uma splashscreen, mas sim uma nova tela com botão que, ao ser clicado, levaria ao app.

Qual o procedimento para que isso fosse possível?

Grato
Responder
Vinícius Thiengo (0) (0)
19/01/2017
Carlos, tudo bem?

Se o aplicativo não for de seu controle, digo, você não ter acesso aos códigos fontes dele, nesse caso não é possível.

Assim a solução seria aplicar engenharia reversa no .APK da APP e com isso criar um novo aplicativo, mas é aquilo, mesmo tendo as mesmas características seria um novo aplicativo.

Caso você tenha acesso aos fontes do projeto, neste caso é tranquilo adicionar uma nova tela, Activity. Abraço.
Responder
Carlos (1) (0)
20/01/2017
Vinicius, agradeço pela resposta.

Como estou começando a criar app, sempre surge esses tipos de dúvidas. Comprei o livro do prof.º Fernando Anselmo e fiz um app simples partindo do exemplo do livro, por isso estou com todo o código fonte que digitei no eclipse.

Tentei usar o procedimento da sua vídeo aula e não tive muito sucesso, não sei o que estou fazendo errado.

O sr. poderia me ajudar com esse minha dúvida?

Grato
Responder
Vinícius Thiengo (0) (0)
21/01/2017
Ok, neste caso você precisa alterar o XML da Activity atual, digo, o XML do AndroidManifest.xml, fazendo com que a nova Activity, mais precisamente a tag dela nesse arquivo, tenha o a seguir:

?
<activity android:name=".SuaNovaActivity">
       <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

<activity
         android:name=?.SuaAntigaActivity" />
?

Assim deve funcionar sem problemas, digo, abrir a Activity que você quer primeiro. Se não me engano falo um pouco sobre isso no artigo / vídeo do link a seguir: http://www.thiengo.com.br/ciclo-de-vida-de-uma-atividade-no-android

Abraço.
Responder
Carlos (0) (0)
22/01/2017
Sr. Vinicius, boa noite,

Esqueci de enviar como está o arquivo xml, que apresentou erro, a nova activity que criei nomeei de "Novatela" e a antiga activity é "CalculadoraActivity".

Segue o arquivo AndroidManifest.xml:


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android "
    package="com.ecalc"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        
        <activity
            android:name=".CalculadoraActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            
            ?
            android:name=".Novatela"
            android:label="@string/title_activity_novatela">
       <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

<activity
         android:name=?.CalculadoraActivity"
         android:label="@string/title_activity_novatela" >
       ?
                      
        </activity>
    </application>

</manifest>
Responder
Vinícius Thiengo (0) (0)
23/01/2017
Carlos, veja essa atualização em seu AndroidManifest.xml: http://pastebin.com/9wXHb6JP

Essa é a maneira como ele deve ser definido. Não deixe de depois estudar o artigo / vídeo do link a seguir: http://www.thiengo.com.br/conhecendo-o-arquivo-androidmanifest-xml

Abraço.
Responder
26/02/2015
Beleza? Primeiramete te agradecer, vc ta fazendo algo que precisamos. Trabalho com Java Web, e estou inciando no android, quais são suas aulas que posso pegar de incio e dar continuidade, pois vc tem varias opções! desde já obrigado!
Responder
Vinícius Thiengo (0) (0)
26/02/2015
Fala Ruan, blz?
Dê uma olhada no canal no YouTube ( https://www.youtube.com/user/thiengoCalopsita ), em especifico nessa Playlist ( https://www.youtube.com/playlist?list=PLBA57K2L2RILUAyMeRmw5kkt4-zzTHv78 ) já que está iniciando. Está um pouco antiga devido a eu utilizar Eclipse na época, mas se for acompanhando o código no AndroidStudio a implementação será a mesma. Abraço
Responder
30/01/2015
Muito bom essas dicas, a dúvida fica então para o fato do botão sempre presente nos smartphones android. Fazer esses botões de voltar parecem redundantes. Mas no caso da aprendizagem é válido. Minha dúvida é no caso do botão de voltar nativo do aparelho, ele mata(finaliza) a atividade atual? ou a atividade ainda continua na pilha??? Parabéns pelo vídeo e obrigado.
Responder
Vinícius Thiengo (1) (0)
31/01/2015
Fala Davi, blz?
Na verdade o Android permanece com o processo de sua APP (não somente a Activity) na memória. O que acontece é que todo vez que vc abre um APP tem uma série de entidades que o Android deve criar somente para rodar a APP (Processo único, Ambiente de execução único, Heap única...) e esse processo de criação é demorado e pesado, então para evitar que esse processo ocorra novamente o ANdroid tenta ficar o maior tempo possível com os processos das APPs abertas ainda salvo na memária, pois caso o usuário volte a APP não será necessário criar tudo novamente, resumo, a Activity será sim finalizada (método onDestroy() será chamado), porém o processo, ambiente de execução, heap, ... vão permanecer alive até o Android não precisar começar a matar processos na memória. Abraço
Responder