每次在應用程序(動態壁紙)字體首選項中發生更改時,我都需要創建一個新的字體。Android資產分配錯誤
要做到這一點,我在我的壁紙引擎創建onSharedPreferenceChanged()字樣,這種方式:
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
typeface = prefs.getString("customize_font_settings", "MyFont.ttf");
AssetManager assmManager = App.getContext().getAssets();
font = Typeface.createFromAsset(assmManager, typeface);
凡App.getContext()getAssets()指靜態實例,英寸爲了正確獲取AssetManager。
事實是,每次onSharedPreferenceChanged()一個新的AssetManager實例被創建,使它很容易溢出內存。
如何創建一個AssetManager的SINGLE實例,該實例將保持不動,並且不會克隆自身?