Правильно передать Activity неактивному объекту - PullRequest
7 голосов
/ 12 февраля 2010

В моем приложении у меня есть неактивный объект, роль которого - класс менеджера. много раз мне нужно было передать «исходную активность» методам в качестве параметра этого класса менеджера, чтобы выполнить некоторые операции с этой активностью.

например, давайте предположим, что у нас есть MyActivity, которая должна сделать тост. так что у меня есть этот класс менеджера под названием MyManager, и у меня есть этот метод в нем

raiseToast(Activity sourceActivity) {

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

и из класса Myactivity мы называем этот метод следующим образом:

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

отлично работает.

то, что я здесь спрашиваю, это правильный способ передачи Activity в качестве параметра неактивному объекту? У меня утечка памяти на реальном устройстве (не на эмуляторе). Интересно, не может ли это также послужить причиной?

Спасибо, Идан.

1 Ответ

3 голосов
/ 12 февраля 2010

Вы можете попытаться передать контекст приложения, который является getApplicationContext () на активность. Почему у вас есть этот объект MyManager? Вы можете просто поднять тост за занятие, не имея его в отдельном классе. Переместите ваш метод Повышение () в тело действия и просто вызовите его.

РЕДАКТИРОВАТЬ: пожалуйста, прочитайте http://android -developers.blogspot.com / 2009/01 / избежать-memory-leaks.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...