博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android重写onConfigurationChanged规避横竖屏切换时候重新进入onCreate生命周期
阅读量:5730 次
发布时间:2019-06-18

本文共 2127 字,大约阅读时间需要 7 分钟。



Android重写onConfigurationChanged规避横竖屏切换时候重新进入onCreate生命周期

Android系统内在的机制,当activity在横竖屏切换时候,会强制重新开始进入activity的生命周期onCreate,在有些特殊的场景,开发者不希望重新进入onCreate生命周期,那么,可以通过重写Android的onConfigurationChanged规避。

具体做法:
(1)添加权限:

(2)因为需要在activity里面检测横竖屏幕的切换变化,故而在Androidmanifest.xml里面配置目标activity的属性:

android:configChanges="orientation|screenSize"

至此,完整的Androidmanifest.xml文件:

(3)接下来就是重写activity里面的onConfigurationChanged:

@Override	public void onConfigurationChanged(Configuration newConfig) {		if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {			// 当前为横屏			Log.d(tag, "ORIENTATION_LANDSCAPE=" + Configuration.ORIENTATION_LANDSCAPE);// 2		} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {			// 当前为竖屏			Log.d(tag, "ORIENTATION_PORTRAIT=" + Configuration.ORIENTATION_PORTRAIT);// 1		}		super.onConfigurationChanged(newConfig);	}

 

完整的测试MainActivity.java代码文件:

package zhangphil.config;import android.app.Activity;import android.content.res.Configuration;import android.os.Bundle;import android.util.Log;import android.widget.Toast;public class MainActivity extends Activity {	private final String tag = "zhangphil";	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		Toast.makeText(this, "onCreate @ " + System.currentTimeMillis(), Toast.LENGTH_SHORT).show();	}	@Override	public void onConfigurationChanged(Configuration newConfig) {		if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {			// 当前为横屏			Log.d(tag, "ORIENTATION_LANDSCAPE=" + Configuration.ORIENTATION_LANDSCAPE);// 2		} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {			// 当前为竖屏			Log.d(tag, "ORIENTATION_PORTRAIT=" + Configuration.ORIENTATION_PORTRAIT);// 1		}		super.onConfigurationChanged(newConfig);	}}

转载地址:http://kcvwx.baihongyu.com/

你可能感兴趣的文章
通信基站(dfs回溯,思维)
查看>>
nginx web加密访问
查看>>
iOS - Regex 正则表达式
查看>>
SYS_CONTEXT函数返回IP地址的一些误解
查看>>
第 68 章 Logical Volume Manager (LVM)
查看>>
膝盖中了一箭之康复篇-第八个月暨2月份目标总结
查看>>
IPA提交APPStore问题记录(一)
查看>>
有利于seo优化的网站地图不能取巧
查看>>
快照产品体验优化
查看>>
ASCII
查看>>
50天!3家!共享单车终于开始了“大逃亡”
查看>>
ibatis SqlMap not found
查看>>
Android SD卡创建文件和文件夹失败
查看>>
Ubuntu 14.04 vsftp refusing to run with writable root inside chroot问题解决方法
查看>>
Intellij IDEA远程调试tomcat
查看>>
hadoop的学习论坛
查看>>
替代Windows Cmd的利器PowerCmd
查看>>
Struts2 学习小结
查看>>
Linux IPMI 安装配置实用
查看>>
烂泥:wordpress迁移到docker
查看>>