Pergunta

No meu aplicativo, tenho um objeto de não atividade que seu papel está sendo uma classe de gerente. Muitas vezes, preciso passar a "atividade de origem" para os métodos como parâmetro para essa classe de gerente para fazer algumas operações nessa atividade.

Por exemplo, vamos supor que tenhamos uma myatividade que precisam fazer um pouco de torrada. Então, eu tenho essa aula de gerente chamada myManager, e eu tenho esse método

raiseToast(Activity sourceActivity) {

  Toast.makeText(sourceActivity, demo, Toast.LENGTH_LONG).show();
}

E da aula de MyActivity, chamamos esse método desta maneira:

MyManager manager=new MyManager();
manager.raiseToast(MyActivity.this);

Funciona bem.

O que estou perguntando aqui, é uma maneira adequada de passar uma atividade como parâmetro para um objeto não ativividade? Estou com vazamentos de memória no dispositivo real (não no emulador), eu me pergunto se isso também pode causar algum motivo para isso?

Obrigado Idan.

Foi útil?

Solução

Você pode tentar passar o contexto do aplicativo que é getApplicationContext () na atividade. Por que você tem esse objeto MyManager? Você pode simplesmente levantar brindes da atividade sem tê -la em classe separada. Mova seu método raisetoast () para o corpo da atividade e apenas chame.

EDIT: Por favor, leia http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top