WallpaperManager 内存泄漏
WallpaperManager leaking memory
我正在使用 leakcanary
检测 Android 上的内存泄漏。第一次使用 WallpaperManager
。我不知道你是 recycle
还是在销毁时清理 WallpaperManager
。
val wallpaperManager = WallpaperManager.getInstance(this)
wallpaperManager.setStream(file.inputStream())
我认为是这两行代码导致了这个问题,因为如果我注释掉这两行代码,就不会发生内存泄漏。
private fun setWallpaper() {
val dir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)!!.absoluteFile
val file = File("$dir${File.separator}wallpaper.jpg")
val wallpaperManager = WallpaperManager.getInstance(this)
wallpaperManager.setStream(file.inputStream())
toast(getString(R.string.wallpaper_set_successfully))
}
尝试调用 WallpaperManager.getInstance(this.getApplicationContext());
这看起来确实像是 AOSP 中的错误,您应该提交工单,但同时使用应用程序上下文应该可以避免泄漏。
我正在使用 leakcanary
检测 Android 上的内存泄漏。第一次使用 WallpaperManager
。我不知道你是 recycle
还是在销毁时清理 WallpaperManager
。
val wallpaperManager = WallpaperManager.getInstance(this)
wallpaperManager.setStream(file.inputStream())
我认为是这两行代码导致了这个问题,因为如果我注释掉这两行代码,就不会发生内存泄漏。
private fun setWallpaper() {
val dir = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS)!!.absoluteFile
val file = File("$dir${File.separator}wallpaper.jpg")
val wallpaperManager = WallpaperManager.getInstance(this)
wallpaperManager.setStream(file.inputStream())
toast(getString(R.string.wallpaper_set_successfully))
}
尝试调用 WallpaperManager.getInstance(this.getApplicationContext());
这看起来确实像是 AOSP 中的错误,您应该提交工单,但同时使用应用程序上下文应该可以避免泄漏。