Android 动态壁纸因自定义字体而崩溃

标签 android fonts live-wallpaper wallpaper purge

我正在尝试在 Android 中创建动态壁纸。它以以下方式在其上绘制了一个文本,海关字符串放置在 Assets 目录中:

String path = "fonts/calligraffiti.ttf";
AssetManager a1 = getApplicationContext().getAssets();
Typeface typef = Typeface.createFromAsset(a1, path);
mp1.setTypeface(typef);

mp1 在这里是 Paint。 这是按以下方式绘制的,每秒更新一次:

c.drawText(Integer.toString(t.get(Calendar.HOUR)), wt/2-5*wt/100, ht/2+sec*60+ht/15, mp1);

每隔几秒我就会在 Logcat 中看到以下内容:从字体缓存中清除 41K [6 个条目],以及类似的内容 然后在像这样的几次清除之后,动态壁纸服务停止并重新启动:

01-02 13:31:59.344: I/ActivityManager(1319): Process ca.jvsh.livewallpaper (pid 3444) has died.
01-02 13:31:59.375: W/WallpaperService(1319): Wallpaper service gone: ComponentInfo{ca.jvsh.livewallpaper/ca.jvsh.livewallpaper.LiveWallpaper}
01-02 13:31:59.383: I/WindowManager(1319): WIN DEATH: Window{457c0628 ca.jvsh.livewallpaper.LiveWallpaper paused=false}
01-02 13:31:59.391: W/ActivityManager(1319): Scheduling restart of crashed service ca.jvsh.livewallpaper/.LiveWallpaper in 5000ms
01-02 13:31:59.508: I/ActivityManager(1319): Low Memory: No more background processes.

这肯定是使用自定义字体造成的。我使用的任何自定义字体都会发生同样的情况,并且在没有自定义字体的情况下一切正常。

如何才能继续使用我的自定义字体而不使动态壁纸服务崩溃?

非常感谢您的回复!

最佳答案

我在动态壁纸应用程序上遇到了类似的问题。我想知道我是否添加了我的 opengl 纹理的问题,最后我刚刚声明,如果 Android 操作系统需要它,可以随时从内存中清除应用程序,并使用 AlarmManager 添加了一个恢复过程。

一些引用:

https://stackoverflow.com/a/14748123/3540391

https://stackoverflow.com/a/8321512/3540391

关于Android 动态壁纸因自定义字体而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701002/

相关文章:

高 DPI 屏幕上的 Java Swing

android - 在菜单选项项中设置我自己的单选按钮颜色

android - 快速获取好友姓名和ID列表

android - 使用导航组件时动态更改工具栏后退箭头图标的颜色

自定义字体的 jQuery 颜色更改在 Firefox 中正常工作,但在 Chrome 中却不起作用?

android - 是否可以使用 32 位 (ARGB_8888) 表面格式的动态壁纸?

android - Android 中的 UI 响应时间限制是多少?

css - 调整/补偿 CSS 中奇怪的字体行高

android - 在图像上创建 alpha 渐变以创建淡入淡出效果

Android 风格 ACTION_CHANGE_LIVE_WALLPAPER