Правильная передача активности объекту, не являющемуся активным

StackOverflow https://stackoverflow.com/questions/2253088

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

raiseToast(Activity sourceActivity) {

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

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

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

это работает нормально.

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

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

Это было полезно?

Решение

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

Редактировать:пожалуйста, прочтите http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top