1
今天起,我要在这里记录和旋转屏幕有关的坑,因为坑太深了。。。。。。
理论
1.当屏幕旋转时,Activity会销毁,然后重建一个Activity;
2.只要设备配置发生了改变,Android就会销毁当前Activity,然后再创建新的;
解决方案
1.protected void onSaveInstanceState(Bundle s){}
Bundle 是一种存储键值对的结构,也就是说我们依靠Bundle储存信息;
那这个方法调用与什么时候呢? Android给出是这样的,反正就是呢被销毁之前留下火种;
通过死前调用此方法保存了数据,然后Activity就被销毁了;接着就是重建Activity的时候,那新Activity如何获取数据呢?
让我们看看onCreate()方法本身。
protected void onCreate(Bundle savedInstanceState){}
也就是说呢,每次Activity进行onCreate方法时,都会传入Bundle,那接下来就是把Bundle传下来的值拿出来了;
protected void onCreate(Bundle savedInstanceState){
if(savedInstanceState!=null)
{
mCurrentIndex=savedInstanceState.getInt(KEY_INDEX,0);
}
}
举个例子 凤凰涅槃,死而复生;但凤凰藏着宝贝呢,重生忘了宝贝藏哪里怎么办呢?
想说刻在岩石上,但风险又有些大;于是就刻下一大堆鬼画符,并在内心与藏宝地关联;并发动神力将其封印在脑海;
这样,凤凰涅槃后,看见鬼画符就解开封印,想起藏宝地,想起往事,我们才能说这个凤凰和死之前是一个;而不是重生了一直完全新的凤凰;