java - Android WallpaperManager 方法 "soft-bricking"用户的手机并导致设备无响应

标签 java android

在过去 2 天里,我有 2 位用户报告说他们的手机死机并且一直没有响应,直到在同一时间使用我的应用程序执行恢复出厂设置。我发现其他类似的应用程序也会出现这种情况,并且相信报告是可信的,但没有任何其他解决方案或讨论。 (Android 9.0 SDK 28 上的谷歌和一加)

它们都描述了即使在安全模式下仍然存在的空白、黑色和无响应的锁屏。在此“卡住”状态下,只有电源按钮和电源菜单有效。两个用户都没有 root,使用相同的设置,并使用默认的 Android 启动器。

根据他们的报告,在使用过程中发生的唯一“危险”事情是:

WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);

wallpaperManager.setBitmap(bmp, null, false, WallpaperManager.FLAG_SYSTEM);

这在 AsyncTask 中运行,除了上面的内容之外没有做任何特别的事情。我预计这是一个异常现象,因为它似乎只在几千名用户中被报告过两次,但它令人担忧。我不确定这是 Bitmap 泄漏、SystemUI 还是 Android 本身的问题。

最佳答案

是的。 setBitmap() 很危险,图像可能太大。如果您让用户设置自己的壁纸,请检查图像尺寸并调整大小。

关于java - Android WallpaperManager 方法 "soft-bricking"用户的手机并导致设备无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54838290/

相关文章:

android - 为什么我需要在 Android 中扩展 Activity?

java - If(语句)延迟

java - 有没有办法检索以动态方式创建的控件(线性布局)的信息?

android - 在 for 循环中创建谷歌地图标记

java - java.lang.NullPointerException On按钮单击

java - 将 JNI 对象作为引用指针访问到 Java 层

java - 在 RecyclerView 中的指定元素上显示 float 操作按钮

java - 应用程序运行良好,那么我可以忽略 "CursorWindow: Window is full: requested allocation 12 bytes, free space 4 bytes, window size 2,097,152 bytes"吗?

java - Methods.class 中的代码重用 vs 策略模式和依赖注入(inject)

java - 当系统脱离网络时,面临 SAP JCo 服务器连接问题