2013-09-26 2 views
0

이 질문은 Android 응용 프로그램 개발과 관련이 있습니다.Android에서 왜 Bitmap을 Application 클래스에 넣지 않아야합니까?

화면 방향이 변경되면 활동이 다시 시작되지만 응용 프로그램은 다시 시작되지 않습니다. 결과적으로 비트 맵은 종종 다시 인스턴스화되어야합니다.

그러나 응용 프로그램을 확장하는 클래스에 비트 맵을 넣으면 해당 비트 맵이 다시 인스턴스화되지 않습니다.

public class MainApplication extends Application { 
    Bitmap bmp; 
    @Override 
    public void onCreate(){ 
     super.onCreate(); 
     bmp=BitmapFactory.decodeResources(getResources(),R.drawable.bmp); 
    } 
} 

응용 프로그램을보다 효율적으로 만들 수 없습니까? 그러나, 나는 아무도 이것을 좋아하지 않는다는 것을 보지 못했기 때문에 아마 이것에 대한 단점이 있음을 공제한다.

그래서 질문에 이르기까지, 왜 내가 이것을하지 않아야합니까?

답변

3

안드로이드에서는 대개 오래된 장치로 인해 메모리가 매우 제한적이므로 비트 맵 (메모리 크기가 클 수도 있음)을 메모리에 보관하는 것은 매우 위험한 결정입니다. 또한 필요한 메모리 만 차지하도록 비트 맵의 ​​크기를 조정하는 것이 좋으며 방향이 맞으면 배율이 변경 될 수 있습니다.

+0

물론, 비트 맵은 전체 응용 프로그램이 아닌 활동, 조각 또는보기와 관련되어야합니다. 구성 변경 중에 하나의 큰 항목을 저장하는 특별한 방법이 있습니다 (메소드 이름은 잊어 버렸습니다). 그러나 "데이터"조각이라고 불리는 것을 사용하기 위해 더 이상 사용되지 않습니다 – Spidy

관련 문제