Dúvida OnClose() e OnFinish()

316 views
Skip to first unread message

Ivan Lopes Alonso

unread,
Mar 19, 2012, 1:46:46 PM3/19/12
to androidbrasil-dev
Boas, eu não lembro qual dos comando ali do assunto é o que realmente indica o final de uma activity

porém a dúvida é a seguinte:

se eu fizer um

OnClose() {

  //inserir dados no banco;

}

vai funcionar ?

obs: eu sei que existe o comando mas nunca testei, quero saber se o modo o qual estou pensando que ele funciona é correto.

Leonardo Fernandez

unread,
Mar 19, 2012, 1:49:50 PM3/19/12
to androidb...@googlegroups.com

Activity lifecycle

Vinícius Uzêda

unread,
Mar 19, 2012, 1:53:27 PM3/19/12
to androidb...@googlegroups.com
Resumindo:

Faça qualquer coisa desses dentro do onPause, checando os isFinishing. Esse é o momento mais seguro (o onFinish pode não ser chamado nunca, segundo a documentação do Android).

protected void onPause() {
    if (this.isFinishing()) {
        // Faça algo, como salvar dados no banco.
    }
}

--
Vinícius Rodrigues de Uzêda
vru...@gmail.com


On Mon, Mar 19, 2012 at 2:49 PM, Leonardo Fernandez <leod...@gmail.com> wrote:

Activity lifecycle


Leonardo Jobim

unread,
Mar 19, 2012, 2:01:54 PM3/19/12
to androidb...@googlegroups.com

Não seria onDestroy()?

finish() é o método que chamamos para encerrar a activity, mas não o reescrevemos, somente onStop(), onPause() ou onDestroy().

Felipe Aron

unread,
Mar 19, 2012, 2:02:51 PM3/19/12
to androidb...@googlegroups.com
Vinicius, essa é nova pra mim. 

Como assim o onFinish() pode não ser chamado? Isso quebraria o ciclo de vida da Activity certo?
--
Analista-Programador

Marcelo Henrique

unread,
Mar 19, 2012, 2:07:18 PM3/19/12
to androidb...@googlegroups.com
Tem gente precisando estudar o ciclo de vida de uma activity
--
                                              - Marcelo Henrique -
  "Se não puder se destacar pelo talento, vença pelo esforço." (Dave Weinbaum)

Felipe Aron

unread,
Mar 19, 2012, 2:11:59 PM3/19/12
to androidb...@googlegroups.com
O certo é usar o onDestroy() correto? É nesse ponto que a Activity será destruída.

Neto Marin

unread,
Mar 19, 2012, 2:19:17 PM3/19/12
to androidb...@googlegroups.com
Cara, sério... da uma lida em http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle

Não é vc que chama o onDestroy. Vc chamaria o finish() e ai o "framework" Android toma conta do lifecycle dos elementos, inclusive da sua activity.

[]s
Neto
---
Neto Marin

Blog: http://blog.netomarin.com
GTalk: neto...@gmail.com
MSN: neto_...@hotmail.com
Skype: netomarin

Vinícius Uzêda

unread,
Mar 19, 2012, 2:22:30 PM3/19/12
to androidb...@googlegroups.com
Mas se vocês repararem, existe um fluxo a partir do onPause que, sob condições de falta de memória, por exemplo, podem levar o SO a matar o seu processo sem passar pelo onStop() e/ou onDestroy().


<quote>
This is often used in onPause() to determine whether the activity is simply pausing or completely finishing.
</quote>


--
Vinícius Rodrigues de Uzêda
vru...@gmail.com


2012/3/19 Neto Marin <neto...@gmail.com>

Neto Marin

unread,
Mar 19, 2012, 2:26:37 PM3/19/12
to androidb...@googlegroups.com
Isso vinicius, KILL é KILL...
O Android é um Linux, e em alguns casos o SO pode simplesmente matar o seu processo. Ai, não tem nada q vai impedir ou te dar uma "chance" pra vc salvar esses dados.

Mas por conta disso disparar um task pra ficar salvando algo, ai já é mta paranóia! =)

E relembrando (como o viniicius já disse), os método que vc sobrescreve da Activity são métodos q o framework Android chama. Ou vc em algum ponto chama o onCreate ou o onResume?

[]s
Neto
---
Neto Marin

Blog: http://blog.netomarin.com
GTalk: neto...@gmail.com
MSN: neto_...@hotmail.com
Skype: netomarin


Ivan Lopes Alonso

unread,
Mar 19, 2012, 3:52:30 PM3/19/12
to androidb...@googlegroups.com
Vou dar uma lida no link que você passou Neto.

No caso o onCreate, só o inicial de toda activity mesmo.

Neto Marin

unread,
Mar 19, 2012, 3:56:40 PM3/19/12
to androidb...@googlegroups.com
Não Ivan... você, a SUA app não chama o onCreate!

Quem chama é a plataforma Android, o SO!
O q eu tava tentando explicar q o mesmo ocorre para onStop, onResume e outros métodos do ciclo de vida da Activity. Você de programa-los de acordo com a sua necessidade, mas não vai ser vc quem vai chama-los.

[]s
Neto
---
Neto Marin

Blog: http://blog.netomarin.com
GTalk: neto...@gmail.com
MSN: neto_...@hotmail.com
Skype: netomarin


Ivan Lopes Alonso

unread,
Mar 19, 2012, 6:33:05 PM3/19/12
to androidb...@googlegroups.com
Bom eu tava lendo aqui sobre o finishi() e o isfinishing()

entendi ali que eu teria que fazer algo do tipo dentro da minha activity

if (isfinishing()) {

//  salvo dados no banco

}

ai quando a activity for finalizada ou por mim ou o programa finalizar ela sozinha ele vai testar esse isfinishing
Reply all
Reply to author
Forward
0 new messages