문제

내 앱에서 ive는 비 행동 객체를 얻었습니다. 역할은 관리자 수업입니다. 여러 번 해당 활동에 대한 일부 작업을 수행하기 위해 "소스 활동"을 해당 관리자 클래스의 매개 변수로 전달해야합니다.

예를 들어, 토스트를 해야하는 myActivity가 있다고 가정 해 봅시다. 그래서 나는이 관리자 클래스가 MyManager라는 것을 가지고 있으며이 방법이 있습니다.

raiseToast(Activity sourceActivity) {

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

그리고 myActivity 클래스에서 우리는이 방법을 이런 식으로 부릅니다.

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

잘 작동합니다.

내가 여기서 묻는 것, 이것은 비 행동 객체에 매개 변수로 활동을 전달하는 적절한 방법입니까? 실제 장치 (에뮬레이터가 아님)에 메모리 누출이 있습니다. 이것이 그 이유를 일으킬 수 있는지 궁금합니다.

고마워 Idan.

도움이 되었습니까?

해결책

활동에서 getApplicationContext () 인 응용 프로그램 컨텍스트를 통과하려고 시도 할 수 있습니다. 이 MyManager 객체가있는 이유는 무엇입니까? 별도의 클래스에서 활동하지 않고 활동에서 토스트를 올릴 수 있습니다. 방법 RaiseToast ()를 활동 본문으로 옮기고 그냥 호출하십시오.

편집 : 읽으십시오 http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top