欢迎大家在这里学习android横竖屏切换数据的保存!下面是我们给大家整理出来的精彩内容。希望大家在这里学习!如果说项目必需要实现横竖屏的切换那么我们就须要对数据进行保存与读取,这也是为什么大部分游戏都不支持横竖屏切换的原因,因为游戏中存在大量的数据 ,比如玩家属性、坐标点、游戏状态、人物属性等等等等实在是太多了。如果要实现正常切换的话那么这些数据都须要进行保存与记录,其实相对软件开发来说做横竖屏切换的到挺多的,毕竟软件当前Activity中保存的数据不会有游戏那么多呵呵,废话就不多说了我分享一个横竖屏切换保存数据与读取数据的方法。
比如横屏切换竖屏实际上是先把当前的横屏的Activity杀掉 然后重新创建一个竖屏的Activity,我们可以使用onSaveInstanceState()方法保存数据,它是在横屏Activity将杀死前调用,可以将须要保存的数据放入Bundle封装在系统中,切换竖屏后这个Activity又重新被创建 这样可以在onCreate(Bundle)或者onRestoreInstanceState(Bundle)方法中来回复之前保存在Bundle中的数据,这样就可以实现横竖屏界面切换数据的保存与读取,当然前提是只能保存Bundle类型的数据,也就是说大量的对象数据的话就要想其它办法来恢复。
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class HandlerActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.handler);
super.onCreate(savedInstanceState);
}
/**切换屏幕之前将数据保存在Bundle中**/
@Override
protected void onSaveInstanceState(Bundle outState) {
long outTime = System.currentTimeMillis();
//屏幕切换将当前的时候保存在Bundle中
outState.putLong("time", outTime);
Log.v("InstanceState", "outTime is "+ outTime);
super.onSaveInstanceState(outState);
}
/**切换屏幕之后在Bundle中把数据取出来**/
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
//取出屏幕切换前保存的时间
Long saveTime = savedInstanceState.getLong("time");
Log.v("InstanceState", "saveTime is "+ saveTime);
super.onRestoreInstanceState(savedInstanceState);
}
}
好了,android横竖屏切换数据的保存内容就给大家介绍到这里了。希望大家继续关注我们的网站!
相关推荐:
android横竖屏切换的响应介绍