Activity横竖屏切换的问题-创新互联

Activity在横竖屏切换的时候会重新走生命周期的方法,这样做的话会导致一些问题 比如我们在界面上录入的一些数据,但因为重新走了生命周期的方法onCreate()方法,这样就会导致前功尽弃,所以就想办法,在横竖屏切换的时候不能让其重新OnCreate(),Android中我们可以在清单文件中对应的Activity使用如下的属性  android:configChanges="keyboardHidden|orientation|screenSize" 这样就可以避免此类事情的发生。下面是示例代码:

创新互联建站自2013年起,先为桐城等服务建站,桐城等地企业,进行企业商务咨询服务。为桐城企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
package com.minimax.demo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

///Activity横竖屏切换/src/com/minimax/demo/MainActivity.java
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		System.out.println("onCreate().....");
	}

	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		System.out.println("onStart().....");
	}
	
	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		System.out.println("onResume().....");
	}
	
	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		System.out.println("onPause().....");
	}
	
	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		System.out.println("onStop().....");
	}
	
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		System.out.println("onDestroy().....");
	}
	
	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		System.out.println("onRestart().....");
		
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

在没有添加对应的属性之前,我们切换横竖屏之后打印的Log日志如下:
04-22 21:50:51.954: I/System.out(24476): onCreate().....
04-22 21:50:51.964: I/System.out(24476): onStart().....
04-22 21:50:51.964: I/System.out(24476): onResume().....
04-22 21:50:56.524: I/System.out(24476): onPause().....
04-22 21:50:56.524: I/System.out(24476): onStop().....
04-22 21:50:56.524: I/System.out(24476): onDestroy().....
04-22 21:50:56.614: I/System.out(24476): onCreate().....
04-22 21:50:56.614: I/System.out(24476): onStart().....
04-22 21:50:56.614: I/System.out(24476): onResume().....
添加如下属性:
        
            
                

                
            
        

在添加属性之后之后,打印的Log日志如下:
04-22 21:52:25.984: I/System.out(30283): onCreate().....
04-22 21:52:25.984: I/System.out(30283): onStart().....
04-22 21:52:25.994: I/System.out(30283): onResume().....

无论如何我们切换横竖屏,都不会重新走onCreate()方法

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:Activity横竖屏切换的问题-创新互联
网站地址:http://csdahua.cn/article/hgies.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流