我正在通过AsyncTask将图像下载到图像视图,我想在我旋转手机时保存图像,而不是再次下载到图像视图...
public void onSaveInstanceState(Bundle toSave) {
super.onSaveInstanceState(toSave);
my_image.buildDrawingCache();
Parcelable bm = my_image.getDrawingCache();
toSave.putParcelable("savedImage", bm);
}
我正在尝试了解我是否对 onSaveInstanceState 做错了,如何检索此状态 onRestoreInstanceState 并放置图片而不再重新下载...
答案 0 :(得分:7)
onSaveInstanceState()函数必须用于保存小对象,而不是重物。
如果您想在手机旋转时保存大量图片,请使用以下任何一项技术:
但最好选择第一个选项。
答案 1 :(得分:0)
首先,super.onSaveInstanceState(toSave)
应位于方法onSaveInstanceState(Bundle toSave)
中的最后一位。
在onCreate(Bundle savedInstanceState)
检查中,如果savedInstanceState
不为空并获得您想要的内容:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
if(savedInstanceState != null){
...
...savedInstanceState.getParcerable(...);
...
}
}
答案 2 :(得分:0)
不要使用静态变量来保留位图。