让屏幕换向更快
来源:互联网 发布:用友nc数据备份 编辑:程序博客网 时间:2024/04/29 20:37
由于android的硬件配置改变后,当前运行的activity需要reload。因此,如果你的app需要展示很多从服务器下载的图片,要是得reload该是多遭的体验啊,或许你想把图片cache到SD卡里面,但是每次都这样岂不是很浪费资源且麻烦吗。为此,android提供了onRetainNonConfigurationInstance()方法,它会保证当且仅当在配置变化的时候做些你想做的事,以保证体验。如下例:
@Override
public Object onRetainNonConfigurationInstance() {
final LoadedPhoto[] list = new LoadedPhoto[numberOfPhotos];
keepPhotos(list);
return list;
}
在新的activity onCreate方法里面,你所需做的就是通过调用getLastNonConfigurationInstance方法来拿回你的对象。
private void loadPhotos() {
final Object data = getLastNonConfigurationInstance();
// The activityis starting for the first time, load the photos from Flickr
if (data == null) {
mTask = new GetPhotoListTask().execute(mCurrentPage);
} else {
// The activity was destroyed/created automatically, populate the grid
// of photos with the images loaded by the previous activity
final LoadedPhoto[] photos = (LoadedPhoto[]) data;
for (LoadedPhoto photo : photos) {
addPhoto(photo);
}
}
}
当你通过onRetainNonConfigurationChange传递对象时得非常小心,如果对象绑定了context-activity,那么你会泄漏activity的所有views和资源,这意味着你永远都不要传递view、drawable、adapter等等。最后使用这个方法的前提是要retain的数据都是expensive to load的。
- 让屏幕换向更快
- 让sql更快
- 让MATLAB更快
- 压缩,让网络更快
- 让系统变得更快
- 如何让快递更快?
- 让硬盘更快、系统更稳定
- 让硬盘更快,让系统更稳定
- 让单片机运行速度更快一些
- 让QQ启动速度更快
- 让QQ启动速度更快
- 让单片机运行速度更快一些
- (收集)让SQL跑得更快
- 如何让sql运行的更快
- 让javascript跑得更快
- 让javascript跑得更快
- 让javascript跑得更快
- 让javascript跑得更快
- 阿雷语录
- Android Service
- MySQL导出数据
- Android Context
- 内存泄漏
- 让屏幕换向更快
- 让你的app经得住未来的检验
- 据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?(转)
- ubuntu grub 启动菜单 修改
- 我能使用这个Intent吗??
- 修改Fedora与windows双系统的启动顺序
- Drawable变换
- 多线程之进程、线程与多线程文字滚动的实现
- IFS 客户端 开发学习笔记4