2013-09-26 23 views
0

此問題僅適用於Android應用程序的開發。在Android中,爲什麼不應該將Bitmap放在Application類中?

當屏幕的方向改變時,Activity重新啓動,但不是應用程序。因此,Bitmaps通常必須重新實例化。

但是通過將位圖放入擴展應用程序的類中,這些位圖不會被重新實例化。

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

這不會使應用程序更高效嗎?不過,我還沒有看到任何人做這樣的事情,所以我推斷這可能有一個缺點。

那麼,爲什麼不應該這樣做呢?

回答

3

在Android中,您通常內存非常有限(因爲舊設備),因此在內存中保留位圖(可能具有很大的尺寸)是一個非常冒險的決定。此外,最好調整位圖大小,以便只取得必要的內存,並且如果方向確實可以改變比例。

+0

好吧,更不用說位圖應該與使用它們的活動,片段或視圖相關聯,而不是整個應用程序。在配置更改期間(我忘記了方法名稱)有一種特殊的方式來保存一個大項目,但它已被棄用,因爲它使用了被稱爲「數據」片段的內容 – Spidy

相關問題