【发布时间】:2015-02-23 20:54:19
【问题描述】:
我正在尝试使用小部件更改壁纸。 我使用下面的代码来实现这一点: 但是每次执行代码都会有一定的延迟。
有什么办法可以避免这种延迟。
...
WallpaperManager wallpaperManager = WallpaperManager.getInstance (context);
Bitmap bitmap = BitmapFactory.decodeStream (new FileInputStream (file));
//here @file is fetched from a phone storage
wallpaperManager.setBitmap (bitmap);
...
【问题讨论】:
-
是的,更快的 CPU + 更快的设备内存应该会有所帮助,说真的,这总是需要一些时间......这真的很长吗?在什么设备上?位图的大小是多少(就维度而言,而不是磁盘大小),decodeStream 或 setBitmap 需要更长的时间?
-
并非市场上的每部手机都满足此要求,因为我正在开发一个应用程序,我希望代码速度更快。有没有其他方法可以做到这一点。
-
我不这么认为......你唯一可以做得更好的是在不同的线程上解码(也许在那里也使用 setBitmap,但我不确定这个调用是否没有需要 UI 线程)(如果需要返回 UI 线程,则为简单的线程或 AsyncTask)它不会帮助延迟,但它会帮助应用程序的响应...您是否收到任何 ANR 报告?
-
好的,我会尝试不同的方法。以下是手机规格:Sony Xperia Z Ultra 2 GB RAM 芯片组-Qualcomm MSM8274 或 MSM8974 Snapdragon 800 CPU-四核 2.2 GHz Krait 400 Gpu - Adreno 330 但延迟比预期的要长,如果您有任何不同的方法,请告诉我。
-
grrr,定义比预期长和位图的宽度和高度...(1秒?,2秒?超过3秒?)
标签: android bitmapfactory android-bitmap android-wallpaper