Ciclo de Vida e Otimização de Fragments no 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 /Ciclo de Vida e Otimização de Fragments no Android

Ciclo de Vida e Otimização de Fragments no Android

Vinícius Thiengo
(6612) (6)
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ítuloTest-Driven Development: Teste e Design no Mundo Real
CategoriaEngenharia de Software
Autor(es)Mauricio Aniche
EditoraCasa do Código
Edição1
Ano2012
Páginas194
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

Opa! Blz?

Nesse vídeo dou continuidade ao vídeo anterior sobre Fragments no Android, porém agora falando do ciclo de vida do Fragment e suas correpondências no ciclo de vida da Activity host. Abordo também o conceito de otimização utilizando os métodos onSaveInstanceState() e setRetainInstance(). Só lembrando que otimizar o acesso ao conteúdo de sua APP Android não é "luxo" e sim obrigação, pois para o Android aniquilar os processos de sua APP devido ao alto uo de memória é apenas um "pulo" e isso é fácil de acontecer.

Fique atento a importância de entender tanto o ciclo de vida da Activity quanto do Fragment, isso pode ser um baita diferencial na hora de programar sua APP. Mas enfim, vou evitar mais delongas e deixar vc assistir ao vídeo.

Se você não conhece os assuntos LogCat e Ciclo de Vida de uma Activity, segue link dos posts que fiz falando sobre esses:

Entendendo e Utilizando o a Classe Log Com o LogCat no Android

Ciclo de Vida de Uma Atividade no Android

O link para download do projeto se encontra logo abaixo no post.

Página da classe Fragment no site oficial do Android

Segue imagem esquema do ciclo de vida do Fragment em paralelo com o ciclo de vida de uma Activity:

Ciclo de Vida e Otimização de Fragments no Android

Vlw

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

AlarmManager no Android, Sua APP Executando Em Tempos DefinidosAlarmManager no Android, Sua APP Executando Em Tempos DefinidosAndroid
AsyncTask no Android, Acesso a Thread Principal de Forma OtimizadaAsyncTask no Android, Acesso a Thread Principal de Forma OtimizadaAndroid
Construindo View Personalizada no AndroidConstruindo View Personalizada no AndroidAndroid
Fragments no Android, Trabalhando com Múltiplas ActivitiesFragments no Android, Trabalhando com Múltiplas ActivitiesAndroid

Compartilhar

Comentários Facebook

Comentários Blog (6)

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...
24/04/2017
Fala thiengo, blz?

Vou tentar resumir, mas é o seguinte...

Meu app abre na tela MainActivity, uma activity com alguns imagebuttons.

Ao clicar em algum deles é verificado se tem usuario logado via shared preferences. Se ele estiver vazio o user é direcionado pra um fragment.

Neste fragment tem um layout de login, ate ai blz. Coloquei um botao pra fechar via intent, com um finish();

O problema é : quando é utilizado a tecla de navegacao do android pra voltar o app fecha. Como se estivesse na MainActivity.

Tem alguma ideia pra otimizar, ou resolver esse problema?

Acredito que seja no ciclo de vida de cada um.



Vlw, abraco.
Responder
Vinícius Thiengo (0) (0)
27/04/2017
Tiago, tudo bem?

Nesse caso realmente o App ainda está na MainActivity. Pois pelo que eu entendi você somente alterou o Fragment que está sendo apresentado.

Caso queira dar ao usuário a oportunidade de voltar ao Fragment anterior ao Fragment de Login, coloque o Fragment de Login em uma pilha de Fragments utilizando o método addToBackStack():

Fragment loginFragment = new LoginFragment();
// getSupportFragmentManager().beginTransaction() - caso esteja com a lib de suporte
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, loginFragment);
transaction.addToBackStack(?pilha_fragments");
transaction.commit();

Assim quando usuário pressionar o back do device ele voltará para a Fragment anterior. Abraço.
Responder
27/04/2017
Mas ai que ta, só o login é um fragment, a Mainactivity nao.
Responder
Vinícius Thiengo (0) (0)
27/04/2017
Ok, entendi errado.

O que deu a entender foi que havia ao menos dois fragments e a MainActivity sendo a entidade host deles.

Nesse caso, se quiser deixar o usuário sair com o clique em sair, terá de sobrescrever o método onBackPressed() na MainActivity e não invocar a versão super dele: super.onBackPressed().

Abraço.
Responder
Fabiano (1) (0)
07/06/2015
Boa noite thiengo,

Como eu utilizo o setOnclickListener  na classe fragment?


        Button sair = (Button) getView().findViewById(R.id.btClear);


        sair.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //finish();
            }
        });
Responder
Vinícius Thiengo (0) (0)
08/06/2015
Fala Fabiano, blz?
Se seu button R.id.btClear estiver dentro do layout da Activity, então o que está fazendo está correto, porém se ele estiver dentro do layout do Fragment, então vc deve utilizar a view que foi inflada com o layout do fragment, tipo: view.findViewById(R.id.btClear); Abraço
Responder