Jos*_*osh 0 lifecycle storage android persistence bitmap
我有一个应用程序,动态生成6到100个小位图,供用户在给定的会话中在屏幕上移动.我现在生成它们onCreate并将它们存储到SD卡中,以便在更改方向后我可以将它们从外部存储器中取出并再次显示它们.但是,这需要花费时间(加载),并且我希望在生命周期更改之间保留位图引用,以便更快地访问.
我的问题是,是否有更好的地方存储我生成的位图?我正在考虑在我的基本活动中创建一个静态存储库,当应用程序从内存中完全删除时,只需要重新加载(关闭,其他应用程序需要资源,30分钟重启等).
理想情况下,我希望用户能够退回标题屏幕,单击"恢复"按钮,然后onCreate我只能访问那些驻留位图引用,而不必再次从存储中加载它们.出于这个原因,我认为不是Activity.onRetainNonConfigurationInstance我需要的.
或者,有没有比我正在做的或我描述的计划更好的方法来处理多个生成的位图?
绝对可以查看Romain Guy的博客文章,了解如何在方向更改时保留生成的位图.这听起来像一个几乎相同的情况.它的要点是,您可以使用onRetainNonConfigurationInstance/ getLastNonConfigurationInstance在与方向相关的活动销毁中传递/接收任意对象.但是,这不会帮助您退出然后重新启动Activity.
您还可以将Bitmaps填充到类似静态缓存的对象(可能是Application类上的SoftReference HashMap ),但要小心不要存储Drawables或Views,因为它们引用了包含Activity的活动而导致内存泄漏.这将持续整个应用程序的生命周期,但如果可能的话,我会避免这种情况,因为任何全局状态都可能导致丑陋的问题,并且很难找到事物引用Activity实例的内存泄漏.
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |