이러한 종류의 코드가 Android에서 메모리 누수의 원인이됩니까?핸들러를 사용하여 메모리 누수가 발생할 가능성이 있습니까?
class MyActivity extends Activity {
Runnable myRunnable =new Runnable() {
public void run() {
// Do something here
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
Handler = new Handler();
Handler.postDelayed(myRunnable, 2000);
}
}
위 코드에서 myRunnable은 MyActivity에 대한 강력한 참조를 가지며 myRunnable은 스레드 메시지 대기열에 추가됩니다. MyActivity가 닫히면 MyActivity 인스턴스가 여전히 전역 메시지 대기열에서 참조되므로 해당 메모리 누수가있을 수 있습니다.
제대로 이해 했습니까?
실행 가능한 메시지 큐에 갇혀 가져옵니다 가능성이 있습니까 정적 내부 클래스를 만드는 시도() 메모리 누수를 방지하기 위해 좋은 방법으로) 완전히
당신의 응용 프로그램을 종료하지 않은? – Kai
나는 생각하지 않는다. 'Looper.loop()'및'MessageQueue.next()'구현을 살펴보십시오. – Michael